在MongoDB实例的运行过程中,当高可用系统监测到实例中的某个节点不可用,将触发节点切换操作并以短信或站内通知的形式通知用户。
收到的通知内容
【阿里云】尊敬的****:您的云数据库MongoDB实例:dds-bp****(名称:****)出现异常,高可用系统已经触发切换,确保实例稳定运行。请检查程序连接是否正常,建议设置自动重连机制以避免切换影响。
为什么会收到该通知
云数据库MongoDB版采用高可用架构:副本集实例中默认包含三个节点;分片集群实例中的每个Shard节点都包含三个节点。其中,Primary节点及Secondary节点对外提供访问地址,Hidden节点作为日常备节点保障高可用。 更多详情请参见副本集架构或分片集群架构。
常见原因如下:
- 节点不可用:云数据库MongoDB版支持节点健康状态监测,当监测到实例中的某个节点不可用,则会触发高可用切换,对节点进行切换操作(例如将Primary节点和Secondary节点进行互换),保障实例的高可用性。
- 节点所在的机器下线:云数据库MongoDB实例中节点所在的机器出现异常,为了避免影响业务将机器进行下线处理,则会触发高可用切换,对节点进行切换操作(例如将Primary节点和Secondary节点进行互换),保障实例的高可用性。
主备切换的影响
- 将造成1次30秒内的连接闪断。
- 如果您的业务通过Primary节点的地址连接,那么由于节点角色发生变化,将会对业务的读写操作造成影响,例如无法写入数据。
业务部署建议
- 为业务设计重连机制,连接闪断后可自动重连,保障业务稳定运行。
- 推荐生产环境的应用程序通过ConnectionStringURI地址连接数据库。当某个节点出现故障时,不会因为主备切换而影响应用的读写操作,详情请参见副本集实例连接说明或分片集群实例连接说明。