kafka 集群的 zookeeper 故障转移

zookeeper failover for kafka cluster

我想知道有什么方法可以使 kafka 集群的 zookeeper 故障转移。 例如:我想为我的 kafka 集群设置 2 个 zookeeper 实例。如果一个 zookeeper 出现故障,Kafka 服务器仍然能够从第二个 zookeeper 读取主题的元数据。

任何建议都是高度适用的。

Zookeeper 以所谓的法定人数的形式工作——一组节点根据简单多数票形成共识。

对于生产,您应该在仲裁中使用 3 或 5 个 Zookeeper 实例。 如果你使用 3,你的集群可以在失去一台服务器的情况下幸存下来(因为剩下的两台构成简单多数)。使用 5,您可以失去两台服务器,因为 3 是 5 的多数。

2 是个坏主意,因为如果 1 个节点出现故障,您的集群将无法工作。

请检查this question

$KAFKA_HOME/config/server.properties

这里可以设置多个zookeeper

zookeeper.connect=<server1>:2181,<server2>:2181,<server2>:2181

在 zookeeper 的情况下维护 2n+1(quorum) 规则