在3节点replicaSet中,为什么当2下降时,第三个变为SECONDARY而不是PRIMARY?
我希望在数据中心内有2个mongod,在外面有一个mongod,所以如果数据中心失败,我想第三个外部mongod成为主要。
没有和仲裁者可能吗?
答案 0 :(得分:7)
好的,找到回复:
http://tebros.com/2010/11/mongodb-arbiters-with-only-two-replicas/
发生什么事了?!事实证明,当mongod实例被隔离时,它不能投票给自己是主要的。当你想到它时,这是有道理的。如果网络链接断开并将您的两个副本分开,您将不希望它们都选择自己作为主要副本。所以在我的情况下,当rep1-1注意到它与副本集的其余部分隔离时,它使自己成为次要的并且停止接受写入。
答案 1 :(得分:3)
总是以(cluster_participants / 2)+ 1个节点结束(假设您有奇数个参与者),群集进入只读模式。候选noDe需要将大多数节点选为主节点。
例如,如果你有5个noDe集群,3个节点被吹走,其他节点将继续作为次要节点,因为它们都不能获得3票。
有关详细信息:http://docs.mongodb.org/manual/core/replication-internals/#replica-set-election-internals