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
标签:kafka-producer-api,java,apache-kafka 来源: https://codeday.me/bug/20190928/1827536.html