MongoDB RepSet +Consul
环境介绍:
MongoDB副本集:192.168.151:27151 已经安装了consul agent 192.168.152:27152 已经安装了consul agent 192.168.153:27153 已经安装了consul agent
原理介绍:
1.MongoDB主从角色检查脚本(MongoDB副本集分为primary和secondary,但为方便理解,仍称为主从关系):
cat> /root/check/mongo_isMaster.sh <
2.MongoDB对应的consul服务配置文件(27151),其他两个更改端口和IP地址即可
cat> /etc/consul/mongo_27151.json <
3.重新加载consul agent配置文件
root@MongoDB151-FedoraServer-IP151#consul reload
注意!!!:在线上主库发送故障转移后,从库会变为新主,在原主库重新排除故障上线之前应更改新主库的优先级为本副本集中最高,防止原主库上线后以高优先级强制重新抢占主库的地位,导致部分事务丢失或者连接抖动
MongoDB相关命令:
rs.isMaster() #检查自己是否为主更改实例优先级conf=rs.confconf.members[1].priority=10 #配置中显示顺序第二的优先级设为10(和_id段的数没关系,仅仅是显示的第二个)rs.reconfig(conf) #只能在主上执行rs.reconfig(conf,{force:true}) #可以强制在从上执行,但会导致原主库已执行,从库未执行未执行的事务被回滚rs.slaveOk() #设置从库可读