【问题标题】:Confused about the numer of voting members in a MongoDB replica set?对 MongoDB 副本集中的投票成员数量感到困惑?
【发布时间】:2013-05-17 22:07:34
【问题描述】:

replica set architecture 文章中,建议的(最低)配置包括:一个主要成员和两个辅助成员(或一个辅助成员和一个轻量级仲裁器)。因此有两个投票成员

下面几行你能读懂(这是为了“顺利选举”):

添加其他成员时,请确保以下架构 条件为真:

  • 该集合有奇数个投票成员。

    如果您有偶数个投票成员,请部署一个仲裁器来创建一个奇数。

如果我是对的两个是偶数,那就是建议的最小配置是错误的!偶数选民怎么会导致“不顺利”的选举?就副本中的投票而言,什么是“不顺利”?

更多信息:即使将初选算作选民(因此三个选民,奇数),如果初选失败,您最终会得到两个选民。如果它失败了,初选如何投票?

【问题讨论】:

  • 你在你描述的那组中有三票。如果一个成员倒下了,那么它就不能投票。这就像投反对票或弃权一样。要成为主要的,次要需要获得 2(三人的多数)赞成票。由于它可以得到两票,它将成为新的主要。

标签: mongodb database-replication


【解决方案1】:

在副本集架构文章中建议(最低) 配置由:一个主要成员和两个次要成员组成 (或一个辅助和一个轻量级仲裁器)。因此两次投票 成员。

这是不正确的。 Primary、Secondary 和 arbiter 是三票。

因此你的票数是奇数。因此,如果一个节点宕机了,另外两个节点就占多数,可以选出一个新的主节点。

您不应该有偶数的原因是,在网络分区的情况下,您最终不会在网络分区的每一侧都有 50% 的投票成员 - 如果发生这种情况,您将没有主要成员即使副本集的每个成员实际上都已启动。

【讨论】:

  • 仍然无法理解:如果主节点出现故障(使用一个主节点和两个从节点),您最终会得到两个选民。如果它失败了,初选如何投票?此外,AFAIK 辅助节点通过数据的优先级或新鲜度成为新的主节点:网络分区如何成为问题?
  • 投票数取决于总配置的副本集,而不是“up”的数量。如果您配置三个节点,则存在三个投票。他们中的一两个是否失败并不重要 - 这相当于他们不投票给第三个。
  • 忘记我的最后一条评论,我当时的想法是不对的,尽管如果其中两个下降确实很重要,因为那时法定人数没有大多数在线投票成员,我已经测试了一个当然;甚至在论坛上发布了它,scot 确认这是因为没有大多数配置的副本在线投票......
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2020-05-03
  • 1970-01-01
  • 2014-04-12
  • 1970-01-01
  • 2018-06-15
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多