首页 文章

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

提问于
浏览
1

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

./bin/kafka-topics --describe --zookeeper <zkconnect>:2181 --topic rbtest3

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

5 回答

  • 4

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

    zookeeper-3.4.8$ ./bin/zkCli.sh -server zookeeper-1:2181 ls /brokers/ids | tail -1
    [0]
    
  • 5

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

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

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

    例如,当您发现自己位于专门运行Kafka客户端的容器(Docker,LXC等)中时,此替代方法非常有用;但Zookeeper本身就在其他地方(比如说,在另一个容器中) .

    我希望它有所帮助 . = :)

  • 1

    你可以使用kafka-manager,一个由雅虎提供支持的开源工具 .

  • 1

    您可以运行以下命令:

    bin/kafka-run-class.sh kafka.tools.GetOffsetShell --topic=<your topic> --broker-list=<your broker list>  --time=-2
    

    这将列出所有具有id和起始偏移量的代理 .

  • 1
    #kafka borker id
    cat $KAFKA_HOME/logs/meta.properties
    

相关问题