Kafka 集群在没有 zookeeper 的情况下继续运行

问题描述

我有一个五节点的 kafka 集群(confluent 5.5 社区版),其中有 3 个 zookeeper 节点,每个节点在不同的 aws 实例上。 在进行故障转移测试时,注意到即使所有 zookeeper 节点都关闭,kafka 集群也能正常工作。 我能够生产、消费并创造新的消费者。

  1. 如果无法连接到任何zookeeper节点,为什么kafka集群不会停止?
  2. 如果我们不知道生产中出现这种故障情况并且 kafka 集群在没有 Zookeeper 连接的情况下继续运行,可能会出现什么问题?
  3. 我们如何处理这种情况?

解决方法

Broker leader 选举、主题创建、简单的 ACL(如果你使用它们)仍然依赖于 Zookeeper。对于其他依赖于 Kafka 引导协议的基本功能,当然,它们可能仍然有效。肯定应该有代理日志表明连接丢失

理想情况下,您应该拥有基本的流程健康检查和事件管理软件,您不应错过生产中出现故障的关键服务

如何处理?重启 Zookeeper...