如何在java中了解Kafka经纪人的状态?

时间:2015-02-24 13:07:10

标签: java apache-storm apache-kafka

我正在研究apache storm,它有一个topolgy主类。此拓扑包含kafkaSpout,它通过kafka代理侦听kafka主题。现在,在我提交此拓扑之前,我想确保具有该主题的kafka代理的状态。但我没有找到任何办法吗?如何从暴风雨学课程中了解卡夫卡经纪人的地位?请帮忙......

3 个答案:

答案 0 :(得分:1)

如果您只想快速了解它是否正在运行,您可以使用相同的配置再次运行启动命令:

bin / kafka-server-start.sh config / server.properties

如果它正在运行,那么你应该得到一个关于已经在使用的端口的例外。

不是万无一失,所以如上所述更好的方法是使用Zookeeper:

我个人使用intellij,它有一个Zookeeper插件,可以帮助你浏览在其中运行的代理/主题。可能与Eclipse或其他IDE类似。

(的IntelliJ) 转到文件>设置>在搜索中输入zookeeper,然后安装并单击确定(可能需要重启) 转到文件>设置>在搜索中输入zookeeper。单击“启用”,然后输入运行zookeeper服务器的地址并应用更改。 (注意您可能需要检查端口是否正确)

您现在应该将您的zookeeper服务器视为IDE左侧的选项卡。 这应该向您展示您的经纪人和主题,消费者等

希望有所帮助!

答案 1 :(得分:0)

如果您已经配置了storm-ui,那么它应该为您提供有关正在运行的集群的简要信息,包括当前运行的拓扑,可用的空闲插槽,管理员信息等信息。

Programitically,您可以编写一个thrift客户端来从Storm集群中检索这些信息。您可以选择几乎任何语言来开发自己的客户端。 查看this文章以获取进一步参考

答案 2 :(得分:0)

根据您希望拥有的状态类型,对于大多数情况,您实际上会从Zookeeper中检索此状态。在Zookeeper中,您可以看到注册经纪人,主题和其他可能是您正在寻找的有用的东西。

另一种解决方案是部署一个能够为您执行这些检查的小型常规消费者。