【NoSQL】VIPを捨ててMongoDB RepSet+Consul高可用性切替システムを構築
MongoDB RepSet +Consul
環境の紹介:
原理紹介:VIPを捨ててconsulとsentinelを使ってredisの高利用可能なシステムmongodbコピーセットの構築を構築する
1.MongoDBマスターロールチェックスクリプト(MongoDBコピーセットはprimaryとsecondaryに分かれていますが、分かりやすいようにマスタースレーブと呼ばれています):
2.MongoDB対応のconsulサービスプロファイル(27151)、その他2つのポートとIPアドレスを変更すればよい
3.consul agentプロファイルの再ロード
注意!!!オンライン上のマスターライブラリがフェイルオーバーを送信すると、ライブラリから新しいマスターに変わります.元のマスターライブラリがフェイルオーバーを再排除する前に、新しいマスターライブラリの優先度をこのコピーセットの中で最も高く変更する必要があります.マスターライブラリがオンラインになった後、高い優先度でマスターライブラリの地位を強制的に再占有することを防止し、一部のトランザクションが失われたり、接続がぶれたりします.
MongoDB関連コマンド:
環境の紹介:
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 <
2.MongoDB対応のconsulサービスプロファイル(27151)、その他2つのポートとIPアドレスを変更すればよい
cat> /etc/consul/mongo_27151.json <
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() #