Apache zookeeper 当主人倒下时,动物园管理员怎么办

Apache zookeeper 当主人倒下时,动物园管理员怎么办,apache-zookeeper,Apache Zookeeper,这个标题看起来可能很傻,但我真的不明白主机关闭时zookeeper的故障切换策略,尽管我读了很多关于zookeeper的文档。我的问题如下: 如果我有三个节点zookeeper,那么主节点已关闭,那么如何执行 剩下的两个节点现在选择新的主节点,这是一个偶数 节点数,它们如何按多数投票。 如果剩下的 关闭两个节点,然后最后一个节点将成为主节点并持续运行 请提供服务,好吗? 如果偶数个zookeeper节点可以 运行非常好,为什么我必须设置奇数个Zookeeper节点? 我想你误解了我们在这里谈论的

这个标题看起来可能很傻,但我真的不明白主机关闭时zookeeper的故障切换策略,尽管我读了很多关于zookeeper的文档。我的问题如下:

如果我有三个节点zookeeper,那么主节点已关闭,那么如何执行 剩下的两个节点现在选择新的主节点,这是一个偶数 节点数,它们如何按多数投票。 如果剩下的 关闭两个节点,然后最后一个节点将成为主节点并持续运行 请提供服务,好吗? 如果偶数个zookeeper节点可以 运行非常好,为什么我必须设置奇数个Zookeeper节点? 我想你误解了我们在这里谈论的大多数人。最重要的不是在其余节点中,而是在整个集群中。所以你需要问的是:'2个节点能在3个节点中占多数吗'?答案是他们可以,因此他们可以选举领导人。 我不知道Zookeeper是如何解决领导者投票的,但重要的是节点的目标不是成为领导者,而是决定一个领导者。为了让你相信这是可能的,这里有一个不同的简单但缓慢的解决方法:节点随机投票,如果他们形成多数,他们会选举领导人,否则他们会再次投票

不,情况并非如此。 由于集群仍然围绕3节点集群进行配置,因此剩下的一个节点不能形成多数,因此不能选举领导者。 这就是为什么2节点集群实际上比1节点集群更糟糕的原因之一,如果其中一个节点下降,集群就会停止

您不必这样做,只是建议您这样做。使用奇数的一个很好的理由是,如果你将你的集群分成两个大小相同的部分,那么任何一方都不能选出一个领导者。如果运行奇数个节点,这是不可能的。 你也可以把它看作是买一送一的交易类型,如果你有4个节点,只有1个节点可以下降,但是如果你有5个节点,2个节点可以下降。但是,如果你有6个节点,仍然只有2个节点可以在集群不停机的情况下停机