一简介:说说我们异地双活的集群

二 背景:需要建立异地双活的架构

三 构建

1 需要保证第二机房至少两个副本集DB,这样在第一机房挂掉后才能保证第二机房的可用性

2 集群状态下第二机房启用config/router,确保在第二机房提供可用性服务.

3 选择稳定的VPN,精简数据库容量,这里是因为由于网络的不稳定,很可能导致需要全量拷贝,由于双机房带宽有限,建议由mongodb本身进行全量拷贝,而不是copy_data,全量拷贝的加速就在于精简数据库容量,将历史数据切割出去,只保留业务所需的核心业务

4 程序访问最好采用DNS策略,平时绑定第一机房的VIP,当故障发生后,切换到第二机房的VIP

5 保证你的mongo要处在3.4以上版本,这样话就可以在线添加config and route服务了

6 需要一个仲裁机制,这样在维护vpn网络的情况下,确保不会进行切换导致出现2主的问题

四 总结

本文只是在基本构建形成一个异地灾备系统,不涉及任何深层次的操作,也很简单易懂.

05-11 11:22