【问题标题】:How to know status of Kafka broker in java?如何在 Java 中了解 Kafka 代理的状态?
【发布时间】:2015-04-26 03:01:12
【问题描述】:

我正在研究具有拓扑主类的 apachestorm。此拓扑包含 kafkaSpout,它通过 kafka 代理侦听 kafka 主题。现在,在我提交此拓扑之前,我想确保具有该主题的 kafka 代理的状态。但是我没有找到任何方法吗?如何从风暴拓扑学类中了解 kafka 经纪人的状态?请帮忙...

【问题讨论】:

  • 你有没有发现什么有用的东西?

标签: java apache-storm apache-kafka


【解决方案1】:

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

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

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

并非万无一失,所以最好使用上面提到的 Zookeeper:

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

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

您现在应该在 IDE 左侧看到您的 zookeeper 服务器作为选项卡。 这应该向您显示您的代理和主题、消费者等

希望有帮助!

【讨论】:

  • 不错的一个!在更高版本的intellij(我的2016.2.3)中,使用文件>设置>其他设置>Zookeeper启用并添加zookeeper服务器的地址。
【解决方案2】:

根据您想要拥有的状态,在大多数情况下,您实际上会从 Zookeeper 中检索它。在 Zookeeper 中,您可以看到注册的代理、主题和其他有用的东西,这可能是您正在寻找的东西。

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

【讨论】:

  • 就像我只是想知道我从我的 kafka spout 监听的 kafka 代理是否处于运行状态,然后我才能运行我的风暴拓扑类。这必须在 java 中完成。
  • 那么您应该可以通过上述建议之一做到这一点:检查代理是否在 Zookeeper 中注册或使用 java 消费者进行测试读取。
【解决方案3】:

如果你配置了storm-ui,那么它应该会给你一个关于正在运行的集群的简要信息,包括当前运行的拓扑、可用的空闲槽、主管信息等信息。

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-11-21
    • 2022-09-27
    • 2016-09-02
    • 2019-07-11
    • 2014-03-14
    • 1970-01-01
    相关资源
    最近更新 更多