我正在使用 kafka-net 客户端向 kafka 发送消息。我只是想知道是否有任何方法可以检查 kafka 服务器是否启动并且可以接收消息。我关闭了kafka,但生产者已成功创建,而SendMessageAsync只是冻结了相当长的时间。我尝试过超时,但它没有改变任何东西。我使用kafka-net 0.9
当kafka服务器启动并运行时它工作得很好
Broker的id已在zookeeper中注册(/brokers/ids/[brokerId]
)作为临时节点,它允许其他经纪人和消费者检测故障。(现在健康的定义相当幼稚。如果在 zk 中注册/brokers/ids/[brokerId]
经纪人是健康的,否则就是死的)。
只要代理的会话存在,zookeeper 临时节点就存在
积极的。
您可以通过 ZkUtils.getSortedBrokerList(zkClient) 检查经纪人是否已启动,它返回以下所有活动经纪人 ID/brokers/ids
import org.I0Itec.zkclient.ZkClient;
ZkClient zkClient = new ZkClient(properties.getProperty("zkQuorum"), zkSessionTimeout, zkConnectionTimeout,ZKStringSerializer$.MODULE$);
ZkUtils.getSortedBrokerList(zkClient);
参考
Zookeeper 中的 Kafka 数据结构 https://cwiki.apache.org/confluence/display/KAFKA/Kafka+data+structures+in+Zookeeper
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)