据https://zookeeper.apache.org/doc/r3.1.2/zookeeperAdmin.html#sc_zkMulitServerSetupzookeeper集群中的一个节点失败后该怎么办?
跨机要求有关的ZooKeeper服务活跃, 必须有一个多数是可以沟通 相互未故障的机器。要创建一个可以容忍F机器的故障 的部署,您应该依靠部署2xF + 1机器。因此,由三台机器组成的部署可以处理一个故障,并且部署五台机器可以处理两个故障。请注意,六台机器的部署只能处理两个故障,因为三台机器不是多数。出于这个原因,ZooKeeper的部署通常是由奇数个机器组成的 。
要实现容忍失败的最高可能性,您应该尝试使机器故障独立。例如,如果大多数机器共享相同的交换机,则该交换机的故障可能会导致 相关的故障并导致服务中断。这同样适用的 共享的电源电路,冷却系统属实等
我的问题是: 我们应该做的后,我们确定动物园管理员集群内的一个节点发生故障,使集群2F + 1再次?我们是否需要重新启动所有动物园管理员节点?此外,客户端连接到Zookeeper群集,假设我们使用DNS名称和恢复的节点使用相同的DNS名称。
例如: 10.51.22.89 zookeeper1 10.51.22.126 zookeeper2 10.51.23.216 zookeeper3
如果10.51.22.89死了,我们为大家带来了10.51.22.90为zookeeper1,所有的节点都可以识别这种变化。
谢谢@Mariusz 在我们的实践中,我们发现像https://stackoverflow.com/questions/22155494/why-cant -my-zookeeper-server-re-join-the-quorum,所以我们必须“滚动重启”所有zookeeper节点。 –
你使用什么版本?您引用的问题已超过3年,适用于动物园管理员3.4.5。 – Mariusz