如何列出所有Kafka zookeeper引导程序服务器

问题描述:

我希望能够以编程方式(或使用shell脚本)列出我的每个环境中的所有zookeeper引导程序服务器。如何列出所有Kafka zookeeper引导程序服务器

如果我只知道一个引导程序服务器,我可以得到它们全部的列表吗?

所有活动经纪人都在/brokers/ids/[brokerId]下注册,您可以通过任何ZK客户端(例如org.I0Itec.zkclient)查询ZNode信息。所有你需要的是zkQuorum地址。

zkClient = new ZkClient(properties.getProperty("zkQuorum"), zkSessionTimeout, zkConnectionTimeout, 
       ZKStringSerializer$.MODULE$); 

Kafka data structures in Zookeeper

不知道这直接帮助,但我用下面从卡夫卡动物园管理员发现一个引导服务器:

zkCli.sh -server host:port 
[zkCli prompt] ls /kafka 
[..., brokers, ...] 
[zkCli prompt] ls /kafka/brokers 
[1, 2, 3, 4, 5] 
[zkCli prompt] ls /kafka/brokers/1 
[1] 
[zkCli prompt] get /kafka/brokers/1 
>> broker info<<