注意
您可以使用Atlas用户界面和 API模拟Atlas多区域集群的中断,并观察应用程序如何处理一个或多个区域的中断。您还可以运行多个模拟。运行多个模拟时,我们建议模拟之间的间隔时间为五分钟。
必需的访问权限
要开始服务中断模拟,您必须拥有Organization Owner或Project Owner访问权限的项目。
模拟区域服务中断过程
当您使用 Atlas 用户界面或API提交测试服务中断的请求时,Atlas 会模拟服务中断事件。在模拟服务中断期间,Atlas:
删除所选地区中节点的网络连接。
不trigger
Replica set has no primary的监控警报。在可配置的有效期(1、3 或 7 天)后自动结束模拟。
如果您的应用程序需要超过15分钟才能注意到与某些节点的连接丢失,我们建议您减少TCP重新传输超时值。 要了解详情,请参阅修改 tcp_retries 2值。
使用 Atlas 用户界面模拟区域中断
要在 Atlas 用户界面中模拟服务中断,请执行以下操作:
AtlasGoClusters在Atlas中,Go项目的 页面。
如果尚未显示,请从导航栏上的 Organizations 菜单中选择包含所需项目的组织。
如果尚未显示,请从导航栏的Projects菜单中选择所需的项目。
在侧边栏中,单击 Database 标题下的 Clusters。
会显示集群页面。
GoTest Resilience 模式。
对于要执行服务中断测试的集群,请单击...按钮。
单击 Test Resilience(连接)。
选择Regional Outage 。 Atlas显示Test Resilience模态,其中包含Atlas为模拟中断事件而采取的步骤。 要学习;了解更多信息,请参阅模拟区域中断过程。
开始模拟。
单击 Select Regions(连接)。
选择与要模拟的服务中断类型相对应的标签页:
选择少于一半的可选举节点。
选择至少一半以上的可选举节点,并保留至少一个剩余可选举节点。
选择大多数可选举节点后,副本集将不再有主节点 (primary node in the replica set)节点。 这意味着副本集无法执行未配置合适readPreference的写入操作和读取操作。
(可选)从 Simulation Duration 下拉列表中,选择模拟在自动过期之前运行的持续时间。此值默认为
3天。选择Simulate Regional Outage开始测试。
Atlas会在发生中断时通知您。
结束模拟。
一旦达到为 Simulation Duration设立的持续时间,模拟就会自动结束。您也可以手动提前结束模拟。
注意
Atlas每隔 24 小时检查是否存在过期模拟,因此在模拟完全解析之前,可能还需要一天的时间。
选择与您要执行的停电类型相对应的标签页:
完成服务中断测试后,单击End Simulation 。
完成区域中断测试后,您可以执行以下操作之一:
通过向副本集添加可选举节点来恢复多区域集群。 要学习;了解更多信息,请参阅在区域中断期间重新配置副本集。
单击End Simulation结束区域停电模拟。
使用API模拟区域中断
验证服务中断
要验证服务中断是否成功,请监控应用程序并确保读写操作按预期运行。
故障排除服务中断
影响分片集群中最高优先级区域的区域中断或区域中断模拟可能会导致集群无法进行读取操作。要恢复配置服务器,请执行以下操作: