当 1 个节点关闭时,3 个动物园管理员集群如何保持活动状态?

how does a zookeeper cluster of 3 stay active when 1 node is down?

文档 here 说:

A 3 server ensemble allows for a single server to fail and the service will still be available.

但是,要建立法定人数,需要 ceil(n/2)+1 个节点

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

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

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

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