边肖将与您分享如何构建MongoDB Repset Consult高可用性交换系统。相信大部分人都不太了解,所以分享这篇文章给大家参考。希望大家看完这篇文章后收获多多。让我们一起来发现吧!
蒙古银行代表处领事
环境介绍:
已安装MongoDB副本集:192.168.151: 27151 consulagent。
192 . 168 . 152:27152 consultant已安装。
协商原则已经确立:
抛弃VIP,利用领事和哨兵构建一个高可用的redis系统。
蒙古数据库副本集的构造
1.MongoDB主从角色检查脚本(MongoDB副本集分为主副本集和次副本集,但为了便于理解,仍称为主从关系):
cat/root/check/mongo _ ISmaster . sheof
#!/bin/bash
PORT=$1
角色=$2
a=$(mongo-uroot-PSA 123456-PORT $ PORT-host 192 . 168 . 1 . 151-authenticationdatabasadmin-eval ' RS . ismaster()' | grep-I ' ismaster ' | awk-F ' : ' ' { print $ 2 } ' | awk-F ',' ' {print$1} ')
# a=$(redis-CLI-p $ PORTinfoReplication | greprole: | awk-F ' : ' ' { print $ 2 } ' | awk-F ' \ r ' ' { print $ 1 } ')
if[$ a=$ ROLE];然后
exit0
其他
exit2
船方不负担装货费用
文件结束
chmod x/root/check/mongo _ ISmaster . sh
#检查脚本的执行情况。第一个参数用于指定端口,第二个参数true检测它是否为主端口,如果为false则检测它是否为从端口。/mongo _ ISmaster . sh 27151 tree
#读取脚本执行结果,返回值为0,条件满足,返回值为2,异常不满足。
echo$?2.咨询对应于2服务配置文件(27151)。MongoDB,另外两个可以更改端口和IP地址。
cat/etc/consult/mongo _ 27151 . JSone of
{
服务' :[
{
id':'27151master ',
名称' :'mongo-master ',
标签' :['master'],
地址' :'192.168.1.151 ',
端口' :27151,
支票' :[
{
(=NationalBureauofStandards)国家标准局
p; "args":["/root/check/mongo_isMaster.sh","27151","true"],
"interval":"1s"
}
]
},
{
"id":"27151slave",
"name":"mongo-slave",
"tags":["slave"],
"address":"192.168.1.151",
"port":27151,
"checks":[
{
"args":["/root/check/mongo_isMaster.sh","27151","false"],
"interval":"1s"
}
]
}
]
}
EOF
3.重新加载consul agent配置文件
root@MongoDB151-FedoraServer-IP151#consul reload
注意!!!:在线上主库发送故障转移后,从库会变为新主,在原主库重新排除故障上线之前应更改新主库的优先级为本副本集中最高,防止原主库上线后以高优先级强制重新抢占主库的地位,导致部分事务丢失或者连接抖动
MongoDB相关命令:
rs.isMaster() #检查自己是否为主 更改实例优先级 conf=rs.conf conf.members[1].priority=10 #配置中显示顺序第二的优先级设为10(和_id段的数没关系,仅仅是显示的第二个) rs.reconfig(conf) #只能在主上执行 rs.reconfig(conf,{force:true}) #可以强制在从上执行,但会导致原主库已执行,从库未执行未执行的事务被回滚 rs.slaveOk() #设置从库可读
以上是“如何构建MongoDB RepSet +Consul高可用切换系统”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注行业资讯频道!
内容来源网络,如有侵权,联系删除,本文地址:https://www.230890.com/zhan/115006.html