为进一步满足业务场景中高可靠性的需求,云数据库 MongoDB 版为分片集群实例提供了同城容灾解决方案。该方案将分片集群实例中的组件分别部署在同一地域下两个或三个不同的可用区,通过内部网络实现节点间的信息互通。
前提条件
注意事项
三可用区
如果应用部署在ECS实例,您需要确保云数据库MongoDB实例和ECS实例满足以下条件,以保证网络的连通性。ECS实例信息的查看方法请参见查看实例信息。
- 所在地域相同。
- 网络类型相同。说明
- 同一可用区会减少网络延时,建议所在可用区相同。
- 专有网络具有更高的安全性,建议使用专有网络。
- 如果网络类型为专有网络,需确保使用相同的专有网络ID。
- 如果您需要使用专有网络,但ECS实例的网络类型为经典网络,您可以将ECS实例网络类型转换为专有网络,具体请参见ECS实例从经典网络迁移到专有网络。
双可用区
如果应用部署在ECS实例,您需要确保云数据库MongoDB实例和ECS实例满足以下条件,以保证网络的连通性。ECS实例信息的查看方法请参见查看实例信息。
- 所在地域相同。
- 网络类型相同。说明
- 同一可用区会减少网络延时,建议所在可用区相同。
- 专有网络具有更高的安全性,建议使用专有网络。
- 如果网络类型为专有网络,需确保使用相同的专有网络ID。
- 如果您需要使用专有网络,但ECS实例的网络类型为经典网络,您可以将ECS实例网络类型转换为专有网络,具体请参见ECS实例从经典网络迁移到专有网络。
如果MongoDB的写安全设置为
WriteConcer=majority
,那么写操作需要被确认已经传播到副本集中的大多数节点上时才会被认为写入成功。因此,当部署两个节点的可用区出现故障的容灾场景下,可能会出现主节点到另一个可用区部署节点的同步延迟时间窗口内数据丢失的情况。双可用区切换可选人工切换和自动切换两种模式,您可以在控制台实例详情页根据业务需求进行设置。该选项默认为人工切换。
使用限制
节点部署策略
可用区 | 部署说明 |
单可用区 | 系统将分片集群实例的Mongos、Shard和ConfigServer组件的所有节点部署在同一可用区。 |
双可用区 | 系统将分片集群实例的Mongos、Shard和ConfigServer组件的节点分别部署在两个不同的可用区中。
当任一可用区因电力、网络等不可抗因素失去通信时,系统会根据您设置的双可用区切换方案进行处理,处理方法如下:
|
多可用区 | 系统将分片集群实例的Mongos、Shard和ConfigServer组件的节点分别部署在三个不同的可用区中。
当多个可用区中的任一可用区因电力、网络等不可抗因素失去通信时,高可用系统将自动触发切换操作,确保整个分片集群架构的持续可用。 |
操作步骤
创建多可用区分片集群实例的操作步骤,请参见创建分片集群实例。
更多信息
您可以通过服务可用性功能,直观地了解实例中的节点在可用区中的分布情况,您还可以根据业务的部署情况切换节点的角色,满足应用就近连接的需求,详情请参见切换节点角色。