zookeper 如何与 kafka 交谈以了解 kafka 已启动
how zookeper talk with kafka to know kafka is up
我们有 3 台 kafka 机器和 3 台 zookeper 服务器
虽然 kafka 机器不与 zookeper 服务器共同托管(kafka 在不同的机器上,OS 是 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 代理已启动?
Zookeeper 基本上是一个分布式键值存储。启动时,Kafka 代理连接到 Zookeeper(使用 zookeeper.connect
设置)并在 /brokers/ids
下创建一个具有自己的 broker.id
的 znode(键值对)。 Kafka 经纪人然后在 运行.
时保持与 Zookeeper 的连接
znode 创建为 "Ephemeral"(这是 Zookeeper 的一个特性)。这意味着如果代理断开连接,Zookeeper 将删除它。
这样,Zookeeper 随时知道哪些 broker 是存活的(这并不一定意味着 broker 是健康的!)。代理使用它来发现集群中的其他代理。
我们有 3 台 kafka 机器和 3 台 zookeper 服务器
虽然 kafka 机器不与 zookeper 服务器共同托管(kafka 在不同的机器上,OS 是 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 代理已启动?
Zookeeper 基本上是一个分布式键值存储。启动时,Kafka 代理连接到 Zookeeper(使用 zookeeper.connect
设置)并在 /brokers/ids
下创建一个具有自己的 broker.id
的 znode(键值对)。 Kafka 经纪人然后在 运行.
znode 创建为 "Ephemeral"(这是 Zookeeper 的一个特性)。这意味着如果代理断开连接,Zookeeper 将删除它。
这样,Zookeeper 随时知道哪些 broker 是存活的(这并不一定意味着 broker 是健康的!)。代理使用它来发现集群中的其他代理。