本文档介绍云数据库MongoDB版实例的节点故障处理机制 。

单节点实例

由于单节点实例架构的特殊性,单节点实例仅拥有一个节点。当节点发生故障后,系统会对故障节点进行检查与修复。节点故障期间实例的相关服务不可用。
说明 单节点实例适用于测试、培训、非核心业务等场景,生产环境建议使用副本集实例或分片集群实例以保障服务的高可用性。

副本集

图 1. 副本集架构
副本集实例提供多个节点供用户访问,当其中的某个节点发生故障后,系统会使用Secondary节点或隐藏节点替换故障节点继续提供服务,并对故障节点进行检查与修复。该过程对用户完全透明,可能会产生1次30秒内的连接闪断,建议您在应用程序中添加重连机制的设计。
说明 在生产环境的应用程序请勿直接连接副本集中的主节点,推荐使用Connection String URI进行连接。当使用Connection String URI进行连接时,如果某个节点出现故障,不会因为节点的切换而影响应用的读写操作,详情请参见副本集实例连接说明

分片集群实例

图 2. 分片集群架构
分片集群实例的Shard节点和ConfigServer节点均采用三节点副本集架构。当其中的某个节点发生故障后,系统会使用隐藏节点替换故障节点继续提供服务,并对故障节点进行检查与修复。该过程对用户完全透明,可能会产生1次30秒内的连接闪断,建议您在应用程序中添加重连机制的设计。
说明
  • Mongos节点采用单节点架构,当某个Mongos节点发生故障,该节点相关服务不可用。
  • 在生产环境的应用程序请勿连接单个Mongos节点,推荐使用Connection String URI连接所有Mongos节点。当使用Connection String URI进行连接时,如果某个Mongos节点出现故障,客户端能自动进行故障切换,将请求分散到状态正常的Mongos节点上,详情请参见分片集群实例连接说明