动物园管理员如何做好主人

时间:2016-02-19 02:25:37

标签: apache-zookeeper

标题可能看起来很傻,但是当主人关闭时我真的无法理解zookeeper故障转移政策,尽管我读了很多关于Zookeeper的文档。我的问题如下:

  1. 如果我有三个节点zookeeper,那么master是down,那怎么做     剩下的两个节点选出新的主人(现在它是一个偶数     数字节点,他们如何通过多数投票。)
  2. 如果剩下的其中一个     两个节点向下,然后最后一个节点将成为主节点并且不断     请服务好吗?
  3. 如果偶数编号的zookeeper节点可以     运行得很好,为什么我必须设置奇数个Zookeeper节点?

1 个答案:

答案 0 :(得分:2)

  1. 我认为你误解了我们在这里谈论的大部分内容。重要的大多数不在其余节点中,而是在整个群集中。所以你需要问的是:'2个节点能否成为3个节点中的大多数'?答案是他们可以,因此他们可以选出领导者。 (我不确切知道Zookeeper如何解决领导者投票,但重要的是节点的目标不是成为领导者而是决定一个领导者。并且说服你这可能是一种变化简单(但很慢)的方式解决它:节点随机投票,如果他们已经形成多数,他们选择那个领导者,他们再次投票。)

  2. 不,情况并非如此。 由于群集仍然配置为3节点群集,因此剩下的一个节点不能占多数,因此不能选择领导者。 这就是为什么2节点集群实际上可能比1节点集群更糟的原因之一,如果其中一个节点停止集群停止。

  3. 您没有,只是推荐。有一个奇数的一个很好的理由是,如果你得到一个网络分裂,将你的集群划分为两个相同大小的部分,任何一方都可以选出一个领导者。 (如果运行奇数个节点,则无法执行此操作。) 你也可以把它看作是买一送一的交易,如果你有4个节点,只有1个可以关闭,但如果你得到5个节点,那么2可以下降。但是如果你得到6个节点,它仍然只有2个节点可以在没有集群发生故障的情况下关闭。