为什么当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