Zokeper中的法定人数与多数人数之比

问题描述 投票:1回答:1

我已经阅读了很多有关Zookeeper的内容,命名约定是我目前尚不了解的一件事。我在文档中找不到任何相关内容,所有stackoverflow问题和其他资源都以不同方式使用仲裁的定义。所以我的问题是,法定人数是多少?

  1. 要达到healthy集成所需的服务器数量吗?这是:Q = 2N + 1其中N是在不关闭整个服务的情况下可以关闭的节点数? (我们愿意支持的故障编号)。在这种情况下,集合的初始服务器总数就是所谓的定额,因此,如果我们要使系统最多支持2个故障节点,则Q = 2 * 2 + 1 = 5,因此定额等于到服务器数量?
  2. 法定人数是必须同意某种操作才能前进的大多数服务器。例如,如果T是服务器的总数,则仲裁也是(T + 1)/ 2给出的多数数。

因此,确切的法定人数是多少?我看到很多人在两个不同的概念中使用相同的名称。

apache-zookeeper distributed-computing
1个回答
0
投票

似乎人们在不加选择地使用它,但是这两点是互斥的。一件事是,即使某些节点发生故障,建立一个健康的集合,具有弹性和可靠性以获取仲裁的服务器的数量,而另一状态则是仲裁等于该数量。另外,仲裁的定义是:

为了使该会议的会议记录有效,必须出席其任何会议的议会或社团的最少成员人数。

这暗示我们可以在需要做出决定时使更多成员不可用(在这种情况下,服务器已关闭)。不仅如此,我还在Zookeeper内部文档中找到了一个有趣的注释:

原子广播和领导者选举使用仲裁的概念来保​​证系统的一致视图。默认情况下,ZooKeeper使用majority quorums,这意味着在这些协议之一中进行的每次投票都需要多数表决。一个示例是确认领导者提议:领导者只有在收到来自仲裁服务器的确认后,才能进行提交。

还可以以分层方式配置仲裁或在不同服务器上配置事件的权重。

结论:

  1. 配置可靠和有弹性的集成的服务器数量是一种健康指标,可以根据需要命名,但不是法定人数。
  2. 法定人数是需要对集合中的每个决定进行表决或发送确认的最小服务器数量,默认情况下为(T+1)/2,其中T代表服务器总数。
© www.soinside.com 2019 - 2024. All rights reserved.