
# DDS实例节点故障处理机制
#### 集群实例
集群实例的shard节点和config节点均采用三节点副本集架构。当其中的某个节点发生故障后，系统会使用另一个正常节点替换故障节点继续提供服务，并对故障节点进行检查与修复。该过程对用户完全透明，可能会产生1次30秒内的连接闪断，建议您的应用程序添加自动重连机制。
图1集群实例拓扑图   
![](https://support.huaweicloud.com/trouble-dds/zh-cn_image_0000001185921092.png)
集群实例的dds mongos节点采用单节点架构，当某个dds mongos节点发生故障，该节点相关服务将不可用。推荐您使用Connection String URI连接所有dds mongos节点，请勿连接单个dds mongos节点。当使用Connection String URI连接所有dds mongos节点时，如果某个dds mongos节点发生故障，客户端能自动进行故障切换，将请求分散到状态正常的dds mongos节点上。连接命令示例：
**mongo "mongodb://rwuser:xxxxxxxx@192.168.95.167:8635,192.168.92.43:8635/test?authSource=admin"**
![](https://support.huaweicloud.com/trouble-dds/public_sys-resources/notice_3.0-zh-cn.png)
使用Connection String URI连接兼容MongoDB 3.4版本的集群实例时，建议使用4.0以上的MongoDB客户端，否则会出现报错。
图2报错信息   
![](https://support.huaweicloud.com/trouble-dds/zh-cn_image_0000001136277006.png)
#### 副本集实例
图3副本集实例拓扑图   
![](https://support.huaweicloud.com/trouble-dds/zh-cn_image_0000001136117210.png)
副本集实例提供两个节点供用户访问，当其中的某个节点发生故障后，系统会使用另一个正常节点替换故障节点继续提供服务，并对故障节点进行检查与修复。该过程对用户完全透明，可能会产生1次30秒内的连接闪断，建议您的应用程序添加自动重连机制。
推荐您使用Connection String URI进行连接，请勿直接连接副本集的Primary节点。当使用Connection String URI进行连接时，如果某个节点出现故障，不会因为节点的切换而影响应用的读写操作。连接命令示例：
**mongo "mongodb://rwuser:xxxxxxxx@192.168.168.116:8635,192.168.200.147:8635/test?authSource=admin\&replicaSet=replica"**
连接副本集实例的最佳实践，请参见[如何连接副本集实例以实现读写分离和高可用](https://support.huaweicloud.com/bestpractice-dds/dds_0003.html)。
#### 单节点实例
图4单节点实例拓扑图   
![](https://support.huaweicloud.com/trouble-dds/zh-cn_image_0000001185921144.png)
由于单节点实例架构的特殊性，仅提供一个节点供用户访问。当节点发生故障后，系统会对故障节点进行检查与重建。节点故障期间，该节点相关服务将不可用。
单节点实例适用于测试、培训、非核心业务等场景，生产环境建议您使用集群实例或副本集实例，以保障服务的高可用性。
