有没有办法直接检查Kafka代理是否在使用java代码的版本9.0中启动或关闭。
虽然我可以检查Zookeeper是否使用以下代码:
ZkClient zkClient = new ZkClient("11.22.33.44:2181", 1000, 1000, kafka.utils.ZKStringSerializer$.MODULE$);
如果 zkClient 对象不为空或无异常则表示已连接。
旧版本有以下代码来获取代理列表:
Seq<Broker> allBrokersInCluster = ZkUtils.getAllBrokersInCluster(zkClient);
但是如何检查kafka&amp;的版本9.0使用java代码的最新版ZkClient / Zookeeper API?
虽然我试图获得计数/经纪人名单。
zkClient.getChildren(ZkUtils.BrokerIdsPath());
zkClient.countChildren(ZkUtils.BrokerIdsPath());
但是上面的代码无法识别Broker是否正在关闭或准备开始(STATES)。
答案 0 :(得分:0)
我尝试在Kafka 9.0上关注代码并为我工作:
Seq<Broker> allBrokersInCluster = ZkUtils.getAllBrokersInCluster(zkClient);
JavaConversions.seqAsJavaList(allBrokersInCluster).forEach(b->{
System.out.println("Broker: "+b.connectionString());
});
它将打印所有活动代理的连接字符串。