【问题标题】:Client Healthcheck: Check for consumer/producer if broker is down客户端健康检查:如果代理关闭,则检查消费者/生产者
【发布时间】:2020-04-15 08:41:48
【问题描述】:
我需要实施健康检查,作为其中的一部分,我必须确定生产者是否能够发布消息,消费者是否能够发送消息,为此我必须检查与集群的连接是否正常工作,这可以是使用“connection_count”指标进行检查,但这并不能提供真实的图片,特别是对于消费者,它将与该消费者所在分区上的某些代理相关联。
生产者的情况更加棘手,因为生产者可能会将消息发布到任何持有生产者正在发布的主题分区的代理。
简而言之,我如何在生产者/消费者 sude 上找到相关经纪人的健康状况。
【问题讨论】:
标签:
java
apache-kafka
kafka-consumer-api
kafka-producer-api
【解决方案1】:
最后,我将问题分为几项检查。
你能联系到经纪人吗? AdminClient.describeCluster 适用于此
您能描述一下您正在使用的主题吗? AdminClient.describeTopic 可以做到这一点
这些主题的 ISR 列表是否高于 min.in.sync.replicas?从 (2) 推断数据
在生产者方面,您可以公开缓冲区大小周围的 JMX 数据...如果缓冲区没有定期刷新,则它不健康。
对于消费者,查看重新平衡发生的条件(例如轮询之间的较长处理时间),然后您可以快速确定对他们来说“不健康”意味着什么。
其中一些概念是我写的
我想 Spring 也有类似的东西