Zookeeper基本上是一个分布式键值存储。启动时,Kafka代理连接到Zookeeper(使用 zookeeper.connect 设置)并创建一个自己的znode(一个键值对) broker.id 下 /brokers/ids 。然后Kafka经纪人在跑步时与Zookeeper保持联系。
zookeeper.connect
broker.id
/brokers/ids
znode创建为“Ephemeral”(这是Zookeeper的一个功能)。这意味着如果代理断开连接,Zookeeper将删除它。
通过这种方式,Zookeeper随时知道哪些经纪人还活着(这并不一定意味着经纪人健康!)。经纪人使用它来发现集群中的其他经纪人。