【发布时间】:2016-10-18 12:11:17
【问题描述】:
如何在 kafka 上获取已连接的消费者列表? 由于消费者是在代理上连接的,是否有任何 Java 实用程序(如 ZkClient/ZkUtils)来获取 Kafka 0.9.0.x 中的已连接消费者列表?就像我们使用以下实用程序获取经纪人列表一样:
ZkClient zkClient = new ZkClient(endpoint.getZookeeperConnect(), 60000);
if(zkClient!=null){
List<String> brokerIds = zkClient.getChildren(ZkUtils.BrokerIdsPath());
if(CollectionUtils.isNotEmpty(brokerIds) && brokerIds.contains(brokerId)){
logger.debug("Broker:{{}} is connected to Zookeeper.",brokerId);
flag = true;
}
else{
logger.error("ERROR:Broker:{{}} is not connected to Zookeeper.",brokerId);
}
zkClient.close();
}
我正在使用 Kafka 0.9.0.x 以及来自 maven 的以下 java lib:
<dependency>
<groupId>org.apache.kafka</groupId>
<artifactId>kafka_2.11</artifactId>
<version>0.9.0.1</version>
</dependency>
更新:
我打开了一个“kafka-console-consumer.bat”并运行了一次,然后穿过了 cmd 提示符。然后继续“zookeeper-shell.bat”和ls /consumers然后显示[console-consumer-6008],但我的程序没有显示消费者。使用 zkClient.getChildren(ZkUtils.ConsumersPath()) 我现在只能查看提到的消费者。
【问题讨论】:
标签: java apache-kafka apache-zookeeper