在kafka集群中使用的FInd代理ID

Jua*_*ews 3 apache-kafka

我想知道kafka集群中获取的代理ID列表.例如,在具有10个节点的集群中,如果我创建一个包含10个分区(或更多)的主题,我可以从describe topic命令的输出中看到已分配它的代理.

./bin/kafka-topics --describe --zookeeper <zkconnect>:2181 --topic rbtest3
Run Code Online (Sandbox Code Playgroud)

我可以在不创建主题的情况下收集此信息吗?

Luc*_*lie 8

您可以使用zookeeper cli获取已使用的代理ID列表.

zookeeper-3.4.8$ ./bin/zkCli.sh -server zookeeper-1:2181 ls /brokers/ids | tail -1
[0]
Run Code Online (Sandbox Code Playgroud)

  • 您可以尝试使用Kafka发行版附带的zookeeper-shell.sh脚本,但我无法使其在非交互模式下工作. (2认同)

NYC*_*yes 7

您还可以使用Kafka发行版zookeeper-shell.sh附带的脚本,如下所示:

linux$ ./zookeeper-shell.sh zookeeper-IPaddress:2181 <<< "ls /brokers/ids"

只需添加任何 Zookeeper 服务器的 IP 地址(和/或必要时更改端口,例如在同一服务器上运行多个 Zookeeper 实例时)。

例如,当您发现自己在一个专门运行 Kafka 客户端的容器(Docker、LXC 等)中时,这种替代方法会很有用;但是 Zookeeper 本身在其他地方(例如,在不同的容器中)。

我希望它有帮助。=:)