爲什麼當2倒下時第三個成爲SECONDARY而不是PRIMARY?在3個節點的副本集中,使用MongoDb和2中的副本集的三個節點下降爲
我想在DataCenter中有兩個mongod,而在外部有一個,所以如果Datacenters失敗,我想第三個外部mongod成爲主節點。
這可能沒有和仲裁?
爲什麼當2倒下時第三個成爲SECONDARY而不是PRIMARY?在3個節點的副本集中,使用MongoDb和2中的副本集的三個節點下降爲
我想在DataCenter中有兩個mongod,而在外部有一個,所以如果Datacenters失敗,我想第三個外部mongod成爲主節點。
這可能沒有和仲裁?
好吧,發現迴應:
http://tebros.com/2010/11/mongodb-arbiters-with-only-two-replicas/
發生了什麼?事實證明,當一個mongod實例被隔離時,它不能投票自己是主要的。這在你思考時很有意義。如果網絡鏈接斷開並將兩個副本分開,則不希望它們都選擇自己爲主節點。所以在我的情況下,當rep1-1注意到它與副本集的其餘部分是隔離的時,它本身是次要的並停止接受寫入。
總是以(cluster_participants/2)+ 1個節點結束(假設您有奇數個參與者),羣集將進入只讀模式。候選noDe需要所有節點中的大多數被選爲主節點。
例如,如果您有5個noDe羣集和3個節點吹散,其他人將保持次要狀態,因爲他們都不能獲得3票。
欲瞭解更多信息:http://docs.mongodb.org/manual/core/replication-internals/#replica-set-election-internals