动物园骗子如何与卡夫卡交谈以了解卡夫卡

时间:2018-10-01 17:23:17

标签: apache-kafka apache-zookeeper

我们有3台kafka机器和3台zookeper服务器

虽然kafka机器未与zookeper服务器共同托管(kafka在不同的机器上,操作系统是redhat版本7.x)

为了获取经纪人id,我们在zookeper服务器上执行以下操作

cd /usr/hdp/current/zookeeper-server/bin

./zkCli.sh

ls /brokers/ids

结果应为三个经纪人ID的

1011  1012  1013

我的问题是-Zookeper以哪种方式知道经纪人已经建立?

或更具体地说

执行哪个cli zookeper来确定kafka经纪人已启动?

1 个答案:

答案 0 :(得分:3)

Zookeeper基本上是一个分布式键值存储。启动时,Kafka代理将连接到Zookeeper(使用zookeeper.connect设置),并在broker.id下创建一个具有自己的/brokers/ids的znode(键值对)。然后,Kafka代理在运行时保持与Zookeeper的连接。

znode被创建为“ Ephemeral”(这是Zookeeper的功能)。这意味着如果代理断开连接,Zookeeper将删除它。

通过这种方式,Zookeeper可以随时知道哪些经纪人还活着(这不一定意味着经纪人健康!)。代理使用它来发现集群中的其他代理。