我需要实现healthcheck,作为其中的一部分,我必须确定生产者是否能够发布消息,消费者是否能够发布消息,为此,我必须检查到集群的连接是否正常工作,这可以使用“connection\u count”度量进行检查,但这并不能提供真实的情况,特别是对于将绑定到特定代理的使用者,该使用者的分区在哪个代理上。
producer的情况更为棘手,因为producer可能会将消息发布给任何代理,这些代理持有producer正在发布的主题的分区。
简而言之,我如何在生产者/消费者sude上找到相关经纪人的健康状况。
1条答案
按热度按时间rryofs0p1#
最后,我把这个问题分成几个检查。
你能联系到经纪人吗?
AdminClient.describeCluster
为这个工作你能描述一下你正在使用的主题吗?
AdminClient.describeTopic
你能做到吗这些主题的isr列表是否高于
min.in.sync.replicas
? 从(2)推断数据在producer端,您可以公开缓冲区大小周围的jmx数据。。。如果缓冲区没有定期刷新,那么它就不正常。
对于消费者来说,看看在什么情况下会发生再平衡(比如两次投票之间的处理时间过长),然后你就可以快速确定对他们来说“不健康”意味着什么。
我写的一些概念
dropwizard kafka(还有生产者和消费者检查)
雷莫拉
我想Spring也有类似的东西