Java实用程序知道Kafka代理是否在9.0中上升/下降?

时间:2016-09-27 06:48:05

标签: java scala apache-kafka apache-zookeeper

有没有办法直接检查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)。

1 个答案:

答案 0 :(得分:0)

我尝试在Kafka 9.0上关注代码并为我工作:

Seq<Broker> allBrokersInCluster = ZkUtils.getAllBrokersInCluster(zkClient);
JavaConversions.seqAsJavaList(allBrokersInCluster).forEach(b->{
            System.out.println("Broker: "+b.connectionString());
        });

它将打印所有活动代理的连接字符串。