我希望能够以编程方式(或使用shell脚本)列出我的每个环境的所有zookeeper引导程序服务器。
如果我只知道其中一个引导服务器,我可以获得所有这些服务器的列表吗?
答案 0 :(得分:2)
所有活动代理都在/brokers/ids/[brokerId]
下注册,您可以通过任何ZK客户端查询ZNode信息(例如org.I0Itec.zkclient)。您只需要zkQuorum地址。
zkClient = new ZkClient(properties.getProperty("zkQuorum"), zkSessionTimeout, zkConnectionTimeout,
ZKStringSerializer$.MODULE$);
答案 1 :(得分:0)
不确定这是否有帮助,但我使用以下内容从Kafka 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<<