2017-08-29 56 views
0

我们最近遇到了一个问题,卡夫卡经纪人遇到了阻止IO的内核问题(但是我能够心跳回到zookeeper)。这样做的结果是卡夫卡经纪人留在ISR集,但实际上无法完成任何任务。Kafka deep healthcheck

的问题是: 1)是否有什么卡夫卡检查它发出心跳之前,还是仅仅是弱智化发射心跳(我看https://cwiki.apache.org/confluence/display/KAFKA/A+Guide+To+The+Kafka+Protocol,但它似乎只是提及协议,而不谈论任何文件实际上在心跳前检查)。 2)在我的情况下,即使所有请求都失败,Kafka仍然心生不安。有没有办法在卡夫卡内部使用更深入的心跳检查请求成功率等?或者我们需要使用外部工具,如https://github.com/pinterest/doctorkafka,https://www.slideshare.net/JiangjieQin/introduction-to-kafka-cruise-control-68180931https://github.com/yahoo/kafka-manager

回答

0

对于第二点,卡夫卡经纪人发出大量指标。如果在您的案例中,经纪商停止处理请求,则应该从许多指标中明显看出,例如每秒基本字节输入/输出或网络/磁盘IO。

为了能够理解事情停止工作时发生了什么,始终监控您的Kafka集群非常重要。有severals好文章网上,列出最重要的卡夫卡,主机和JVM指标,例如:

关于你的第一个问题,我不知道你是什么“问。您链接的页面是Kafka协议。它只是详细介绍了卡夫卡的客户和经纪人如何互动。它不包括Kafka和Zookeeper之间的任何交互。

+0

所以我想答案是否定的,卡夫卡没有深入的健康检查,我们应该建立一个外部监测系统来检测错误并关闭正常心跳无法检测到的失败经纪人?对于第二个问题,我试图找到一些文件,告诉我卡夫卡何时检查心跳的确切时间。 – hankduan