【问题标题】:Best way to perform Kafka consumer healthcheck.执行 Kafka 消费者健康检查的最佳方式。
【发布时间】:2018-08-11 04:27:42
【问题描述】:

假设我有一个使用来自 kafka 集群的日志的应用程序。我希望应用程序定期检查集群的可用性并在此基础上执行某些操作。我想到了几种方法,但不确定哪一种更好或最好的方法是:

  1. 创建一个 MessageProducerMessageConsumer。生产者将 heartbeatTopic 发布到集群,消费者查找它。我认为的问题是,应用程序只关注消费,健康检查既有生产部分,也有消费部分。
  2. 用一个新的 groupId 创建一个 MessageConsumer,它不断地汇集新消息。这样,监控/运行状况检查与应用程序应该做的事情相同,我认为这很好。
  3. 创建一个 MessageConsumer,它的作用与实际使用消息不同。 listTopics (https://stackoverflow.com/a/47477448/2094963) 之类的东西。

哪些方法更可取,为什么?

【问题讨论】:

标签: apache-kafka kafka-consumer-api health-monitoring


【解决方案1】:

在这里走一条稍微不同的路线,您可以使用Apache Curator library 轮询 zookeeper(znode 路径 - /brokers/ids)以获取此信息。

这是我尝试并工作的一个想法 - 我使用Curator's Leader Latch recipe 来满足类似的要求。

您可以创建LeaderLatch 的实例并调用getLeader() 方法。如果在每次调用时,您都会得到一个领导者,那么可以安全地假设集群已启动并正在运行,否则就会出现问题。

我希望这会有所帮助。

EDIT:添加存储leader信息的zookeeper节点路径。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-10-25
    • 1970-01-01
    • 2018-02-07
    • 1970-01-01
    • 2018-12-25
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多