apache-kafka – 有没有办法检查kafka是否从kafka-net启动并运行

我正在使用kafka-net客户端向kafka发送消息.我只是想知道是否有任何方法可以检查kafka服务器是否可以接收消息.我关闭了kafka,但生成器已成功创建,SendMessageAsync刚冻结了很长时间.我试图通过超时,但它没有改变任何东西.我用kafka-net 0.9

当kafka服务器启动并运行时,它工作得很好 最佳答案 Broker的id在zookeeper(/ brokers / ids / [brokerId])中注册为临时节点,允许其他经纪人和消费者检测失败.(现在健康的定义相当幼稚.,如果在zk / brokers / ids中注册/ [brokerId]经纪人是健康的,否则就死了.

zookeeper ephemeral node exists as long as the broker’s session is
active.

您可以通过ZkUtils.getSortedBrokerList(zkClient)检查代理是否已启动,它返回/ brokers / ids下的所有活动代理ID

import org.I0Itec.zkclient.ZkClient;

ZkClient zkClient = new ZkClient(properties.getProperty("zkQuorum"), zkSessionTimeout, zkConnectionTimeout,ZKStringSerializer$.MODULE$);
ZkUtils.getSortedBrokerList(zkClient);

参考
Kafka data structures in Zookeeper

点赞