Mongodb复制集选举,当为所有节点设置连续优先级时



mongodb replicaset的选举过程中,什么会被优先考虑 - 优先级还是投票?我的意思是,如果我为副本集的所有成员节点设置了连续的优先级,它会陷入死锁吗?

例如,如果我有一个 mongodb 副本集,有 4 个节点并且没有仲裁器。它们都有优先级设置,比如node01有25,node02有20,node03有15,node04有10。

在上述情况下,选举过程是否有可能陷入僵局?

在具有 4 个节点及其相应优先级的给定副本集中 :=> node1:25,node2:20,node3:15,node4:10。假设节点 1(主节点,优先级最高)已经关闭,那么将触发选举,节点 2 将被选为下一个主节点(按优先级顺序),前提是它收到副本集多数成员的投票。即使在理论上,也不存在僵局的可能性。如果您希望节点在选举/故障转移期间成为首选的"主"节点,则为副本集节点设置非固定优先级值可能很有用。

注意 - 从 mongoDB 的 v2.6 开始,每个符合条件的节点只能投票一次。

投票和优先级是两回事。Mongo 需要超过 50% 的选票才能选出初选,如果我们的选票少于 50%,那么所有活着的节点都将成为次要节点。

副本集的优先级设置可确保优先级较高的成员比其他优先级较低的成员更有可能成为主成员。

Node1:25>

Node2:20> Node3:15> Node4:10 是主节点的序列。

注意:

  1. 您可以将优先级设置为 0 到 1000 之间。
  2. 副本集群集中只能有 7 个投票成员。将其他成员的投票设置为 0。

并回答您的问题:

在 mongodb 复制集的选举过程中,什么会被优先考虑 - 优先权还是选票?

答:投票

我的意思是,如果我为副本集的所有成员节点设置了连续的优先级,它会陷入死锁吗?答:从来没有。

最新更新