1

这里的文档说:

3 服务器集成允许单个服务器发生故障,并且该服务仍然可用。

但是,要建立仲裁,需要有ceil(n/2)+1节点

在3个节点的情况下,即:
ceil(3/2)+1 = ceil(1.5)+1 = 3

因此,如果 1 个节点宕机,则不应该建立仲裁,并且 zookeeper 应该宕机。

在这种情况下,上述文档是否错误?

4

1 回答 1

2

三节点集群中的法定人数为 2,因为这是多数。空间或时间上的任何两个多数必须重叠;所以不能不知道任何其他多数的行动,因为至少有一个节点同时处于多数。这是 Paxos 算法使用的基本属性(注意 Zookeeper 使用 ZAB 而不是 Paxos,我的观点是共识算法中的安全性使用多数)。因此,您的计算应该是floor(N/2)+13 节点集群中的法定人数为 2,5 节点集群中为 3,7 节点集群中为 4,等等。

于 2015-03-19T20:17:30.113 回答