Apache zookeeper 使用偶数个节点运行zookeeper

Apache zookeeper 使用偶数个节点运行zookeeper,apache-zookeeper,Apache Zookeeper,在6节点群集上运行zookeeper时,是否有人知道仲裁是自动确定为4节点还是3节点 如果法定人数选择为N/2,那么它将变为3,并可能导致大脑分裂的情况。 如果法定人数选择为(N+1)/2,则它将变为4,从而避免出现大脑分裂的情况 因此,我希望是后者,但政府没有提到任何这类问题。 有人肯定知道吗 另外,我知道建议使用奇数个zookeeper节点,但我只是想知道偶数个节点的情况会发生什么。请参见org.apache.zookeeper.server.quorum.flexible.qourumma

在6节点群集上运行zookeeper时,是否有人知道仲裁是自动确定为4节点还是3节点

如果法定人数选择为N/2,那么它将变为3,并可能导致大脑分裂的情况。 如果法定人数选择为(N+1)/2,则它将变为4,从而避免出现大脑分裂的情况

因此,我希望是后者,但政府没有提到任何这类问题。 有人肯定知道吗


另外,我知道建议使用奇数个zookeeper节点,但我只是想知道偶数个节点的情况会发生什么。

请参见org.apache.zookeeper.server.quorum.flexible.qourummaj.java

public boolean containsQuorum(HashSet<Long> set)
{
    return set.size() > n / 2;
}
public boolean containsQuorum(HashSet)
{
返回set.size()>n/2;
}

我知道这是一篇老文章,但为了其他可能无意中发现这篇文章的人而回复


Zookeeper需要大多数节点启动并通信。所以在你的例子中,它是6分之4,这就是为什么使用奇数的原因。从HA的角度来看,您的节点不是冗余的吗?如果3个节点宕机,则集群将宕机。与5节点集群相同

拥有偶数个节点不会在节点出现故障/故障时增加任何优势。 一个6节点的集群可以容忍多达2个节点的故障,这意味着它至少需要4个节点来避免大脑分裂问题或获得多数票。这甚至可以通过5节点集群实现,这意味着5节点集群还可以容忍多达2个节点的故障

因此,增加一个额外的节点只是一种运营成本

我在我的博客上回答了同样的问题

请看一看:)

谢谢。因此,
大于
符号确实意味着法定人数被选择为(n+1)/2,偶数的动物园管理员不会出现大脑分裂的情况。具体地说,在6个节点的情况下,仲裁条件变为
set.size>3
,这意味着至少有4个节点仲裁。