实例节点故障处理 本页介绍了常见的实例故障节点处理和规避方法。 集群实例 集群实例包含 mongos, config 和 shard 3 类节点。 其中 config 和 shard 节点都采用 3 节点副本集架构,如果某个节点发生故障,系统会自动进行高可用切换操作,选取一个正常节点继续提供服务,后台会对故障节点进行检查和修复。config 和 shard 的自动切换操作对用户来说不需要任何干预,整个过程会在 1 分钟内完成,用户请求如果出现报错可以进行重试。 每个 mongos 是独立运行的,如果节点出现故障,则该节点不可用。用户在创建实例时会分配多个 mongos 节点,因此推荐客户端使用 Connection URI 连接所有 mongos 节点,而不是单个 mongos 节点。客户端会自动对所连接的 mongos 进行探活检查,并自动将请求分散到正常的 mongos 节点上。 连接示例如下: mongo "mongodb:// : @ , /admin?authSourceadmin" 副本集实例 一个副本集实例包含多个 mongod 节点。比如 3 节点副本集包含 1 个 Primary,1 个 Secondary 和 1 个 Hidden 节点。如果 Primary 节点故障,系统会自动选择另外正常的 Secondary 节点成为新的 Primary 节点,后台会对故障节点进行检查和恢复。 整个切换和恢复过程不需要用户干预,在此期间可能会产生 1 分钟以内的连接闪断和请求失败,用户可以对出现报错的请求进行重试。 建议客户端使用 Connection URI 连接文档数据库时,连接所有正常节点,并指定 replicaSet 参数。避免在出现单个节点故障时,影响应用的正常请求。 连接示例如下: mongo "mongodb:// : @ , /admin?authSourceadmin&replicaSet "