为进一步满足业务场景中高可靠性的需求,云数据库MongoDB为分片集群实例提供了同城容灾解决方案。该方案将分片集群实例中的组件分别部署在同一地域下三个不同的可用区,通过内部网络实现节点间的信息互通。当三个可用区中的任一可用区因电力、网络等不可抗因素失去通信时,高可用系统将自动触发切换操作,确保整个分片集群架构的持续可用。
前提条件
已注册阿里云账号,注册流程请参见注册阿里云账号。注意事项
如果应用部署在ECS实例,您需要确保云数据库MongoDB实例和ECS实例满足以下条件,以保证网络的连通性。ECS实例信息的查看方法请参见查看实例信息。
- 所在地域相同。
- 网络类型相同。说明
- 同一可用区会减少网络延时,建议所在可用区相同。
- 专有网络具有更高的安全性,建议使用专有网络。
- 如果网络类型为专有网络,需确保使用相同的专有网络ID。
- 如果您需要使用专有网络,但ECS实例的网络类型为经典网络,您可以将ECS实例网络类型转换为专有网络,具体请参见ECS实例从经典网络迁移到专有网络。
使用限制
- 云数据库MongoDB 4.2及以下版本仅支持在以下地域和可用区部署多可用区分片集群实例。
- 华南1(深圳):深圳可用区(C+D+E)。
- 中国(香港):香港可用区(B+C+D)。
- 新加坡:新加坡可用区(A+B+C)。
- 云数据库MongoDB 4.4及以上版本仅支持在以下地域和可用区部署多可用区分片集群实例。
- 华东1(杭州):杭州可用区G、H和I。
- 华东2(上海):上海可用区N、B、G和L。
- 华北2(北京):北京可用区F、H、L和K。
- 华南1(深圳):深圳可用区E、D和F。
- 中国(香港):香港可用区B、C和D。
- 华北6(乌兰察布):乌兰察布可用区A、B和C。
- 新加坡:新加坡可用区A、B和C。
- 印度尼西亚(雅加达):雅加达可用区A、B和C。
- 德国(法兰克福):法兰克福可用区A、B和C。
- 日本(东京):东京可用区A、B和C。
节点部署策略
云数据库MongoDB分片集群实例的节点部署策略如下:
- 单可用区部署:系统将分片集群实例的Mongos、Shard和ConfigServer组件的所有节点部署在同一可用区。
- 多可用区部署:系统将分片集群实例的Mongos、Shard和ConfigServer组件的节点分别部署在三个不同的可用区中。
- Mongos组件:遵循所有机房均衡的原则。Mongos组件的节点至少为两个,分别部署在两个不同的可用区中。当增加第三个节点时,默认部署在第三个可用区中,后续增加的节点依次部署在各可用区中。
- Shard组件:每个Shard组件的主节点(Primary节点)、从节点(Secondary节点)与隐藏节点(Hidden节点)并非顺序部署在三个可用区中,节点所在的可用区可能会随着手动切换主备节点或触发高可用系统而改变。
- ConfigServer组件:每个ConfigServer组件的主节点(Primary节点)、从节点(Secondary节点)与隐藏节点(Hidden节点)分别部署在三个不同的可用区中。

操作步骤
- 登录MongoDB管理控制台。
- 在页面左上角,选择实例所在的资源组和地域。
- 在左侧导航栏,单击分片集群实例列表。
- 在分片集群实例列表页面,单击创建实例。
- 在商品类型区域,请根据业务需求,选择分片集群(包年包月)或分片集群(按量付费)。
- 配置地域。
- 如果您购买的实例是4.2及以下版本,可以选择地域为华南1(深圳)、中国(香港)或新加坡。
- 如果您购买的实例是4.4及以上版本,可以选择地域为华东1(杭州)、华东2(上海)、华北2(北京)、华南1(深圳)、中国(香港)、华北6(乌兰察布)、新加坡、印度尼西亚(雅加达)、德国(法兰克福)或日本(东京)。
- 配置可用区类型。
- 如果您购买的实例是4.2及以下版本,可用区类型配置为单可用区。说明 4.2及以下版本可以通过配置可用区实现分片集群实例的多可用区部署。
- 如果您购买的实例是4.4及以上版本,可用区类型配置为多可用区。
- 如果您购买的实例是4.2及以下版本,可用区类型配置为单可用区。
- 配置可用区。
您可以选择可用区为深圳可用区(C+D+E)、香港可用区(B+C+D)或新加坡可用区(A+B+C)。
- 如果您购买的实例是4.2及以下版本,可以选择可用区为深圳可用区(C+D+E)、香港可用区(B+C+D)或新加坡可用区(A+B+C)。
- 如果您购买的实例是4.4及以上版本,多可用区包含可用区、备可用区1和备可用区2。您需要配置三个不相同的单可用区,仅支持在以下可用区部署多可用区分片集群实例:
- 杭州可用区G、H和I。
- 上海可用区N、B、G和L。
- 北京可用区F、H、L和K。
- 深圳可用区E、D和F。
- 香港可用区B、C和D。
- 乌兰察布可用区A、B和C。
- 新加坡可用区A、B和C。
- 雅加达可用区A、B和C。
- 法兰克福可用区A、B和C。
- 东京可用区A、B和C。
- 为实例设置其他参数并购买实例,具体请参见创建分片集群实例。
更多信息
您可以通过服务可用性功能,直观地了解实例中的节点在可用区中的分布情况,您还可以根据业务的部署情况切换节点的角色,满足应用就近连接的需求,详情请参见切换节点角色。