我已经阅读了很多有关Zookeeper的内容,命名约定是我目前尚不了解的一件事。我在文档中找不到任何相关内容,所有stackoverflow问题和其他资源都以不同方式使用仲裁的定义。所以我的问题是,法定人数是多少?
因此,确切的法定人数是多少?我看到很多人在两个不同的概念中使用相同的名称。
似乎人们在不加选择地使用它,但是这两点是互斥的。一件事是,即使某些节点发生故障,建立一个健康的集合,具有弹性和可靠性以获取仲裁的服务器的数量,而另一状态则是仲裁等于该数量。另外,仲裁的定义是:
为了使该会议的会议记录有效,必须出席其任何会议的议会或社团的最少成员人数。
这暗示我们可以在需要做出决定时使更多成员不可用(在这种情况下,服务器已关闭)。不仅如此,我还在Zookeeper内部文档中找到了一个有趣的注释:
原子广播和领导者选举使用仲裁的概念来保证系统的一致视图。默认情况下,ZooKeeper使用majority quorums,这意味着在这些协议之一中进行的每次投票都需要多数表决。一个示例是确认领导者提议:领导者只有在收到来自仲裁服务器的确认后,才能进行提交。
还可以以分层方式配置仲裁或在不同服务器上配置事件的权重。
结论:
(T+1)/2
,其中T
代表服务器总数。