久久精品人人爽,华人av在线,亚洲性视频网站,欧美专区一二三

如何構建MongoDB RepSet +Consul高可用切換系統

145次閱讀
沒有評論

共計 1830 個字符,預計需要花費 5 分鐘才能閱讀完成。

丸趣 TV 小編給大家分享一下如何構建 MongoDB RepSet +Consul 高可用切換系統,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!

MongoDB RepSet +Consul

環境介紹:

MongoDB 副本集:192.168.151:27151  已經安裝了 consul agent
 192.168.152:27152  已經安裝了 consul agent
 192.168.153:27153  已經安裝了 consul agent

原理介紹:
拋棄 VIP,使用 consul 和 sentinel 構建 redis 的高可用系統
  mongoDB 副本集的搭建

1.MongoDB 主從角色檢查腳本(MongoDB 副本集分為 primary 和 secondary,但為方便理解,仍稱為主從關系):

cat  /root/check/mongo_isMaster.sh  EOF
#!/bin/bash
PORT=$1
ROLE=$2 
a=$(mongo -uroot -psa123456 --port $PORT --host 192.168.1.151 --authenticationDatabase admin --eval  rs.isMaster() |grep -i  isMaster |awk -F  :   {print $2} |awk -F  ,   {print $1} )
#a=$(redis-cli -p $PORT info Replication|grep role:|awk -F  :   {print $2} |awk -F  \r   {print $1}  )
if [ $a = $ROLE ]; then
 exit 0
 exit 2
chmod +x /root/check/mongo_isMaster.sh
#檢查腳本執行, 第一個參數用來指定端口, 第二個參數 true 即檢測是否主, 若為 false 即是檢測是否從
./mongo_isMaster.sh 27151 true
#讀取腳本執行結果,返回值為 0,滿足條件,返回值為 2,異常,不滿足
echo $?

2.MongoDB 對應的 consul 服務配置文件(27151),其他兩個更改端口和 IP 地址即可

cat  /etc/consul/mongo_27151.json  EOF
  services :[
 {
  id : 27151master ,
  name : mongo-master ,
  tags :[master],
  address : 192.168.1.151 ,
  port :27151,
  checks :[
 {  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 高可用切換系統”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注丸趣 TV 行業資訊頻道!

正文完
 
丸趣
版權聲明:本站原創文章,由 丸趣 2023-07-19發表,共計1830字。
轉載說明:除特殊說明外本站除技術相關以外文章皆由網絡搜集發布,轉載請注明出處。
評論(沒有評論)
主站蜘蛛池模板: 沂源县| 双辽市| 桐城市| 仪征市| 晋江市| 莱州市| 黄陵县| 双桥区| 巴塘县| 雷波县| 雷州市| 安阳市| 秦皇岛市| 格尔木市| 蒙山县| 昔阳县| 宜都市| 中卫市| 西乌珠穆沁旗| 上蔡县| 耿马| 星子县| 昌宁县| 乡宁县| 德兴市| 阳东县| 耿马| 二连浩特市| 马龙县| 交城县| 兴和县| 安福县| 凌源市| 集安市| 乌兰察布市| 达尔| 普安县| 青州市| 家居| 黎平县| 鸡西市|