+-
java – 如何检查Kafka Server是否正在运行?
我想在开始生产和消费工作之前确保kafka服务器是否正在运行.它是在 windows环境中,这是我的kafka服务器在 eclipse中的代码…

Properties kafka = new Properties();
kafka.setProperty("broker.id", "1");
kafka.setProperty("port", "9092");
kafka.setProperty("log.dirs", "D://workspace//");
kafka.setProperty("zookeeper.connect", "localhost:2181");    
Option<String> option = Option.empty();
KafkaConfig config = new KafkaConfig(kafka);        
KafkaServer server = new KafkaServer(config, new CurrentTime(), option);
server.startup();

在这种情况下if(server!= null)是不够的,因为它总是为true.那么有没有办法知道我的kafka服务器正在运行并为生产者做好准备.我有必要检查一下,因为它会导致丢失一些起始数据包.

谢谢.

最佳答案
必须为所有Kafka经纪人分配broker.id.启动时,代理将在Zookeeper中创建一个短暂的节点,其路径为/ broker / ids / $id.由于节点是短暂的,所以一旦代理断开连接,它将被移除,例如,通过关闭.

您可以查看临时代理节点的列表,如下所示:

echo dump | nc localhost 2181 | grep经纪人

ZooKeeper客户端接口公开了许多命令; dump列出集群的所有会话和临时节点.

注意,以上假设:

>您正在localhost上的默认端口(2181)上运行ZooKeeper,并且该localhost是群集的领导者
>您的zookeeper.connect Kafka配置没有为您的Kafka群集指定chroot env,即它只是host:port而不是host:port / path

点击查看更多相关文章

转载注明原文:java – 如何检查Kafka Server是否正在运行? - 乐贴网