我们最近遇到了一个问题,Kafka经纪人遇到了一个内核问题,这个问题阻止了IO(但我猜想能够回到动物园管理员的心跳)。结果是Kafka经纪人留在了ISR集合中,但实际上无法完成任何任务。
问题是: 1)是否有关于Kafka在发出心跳之前检查的文件,或者它只是发出心跳(我看到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-68180931或https://github.com/yahoo/kafka-manager
答案 0 :(得分:0)
对于您的第二点,Kafka经纪人会发出大量指标。如果在您的情况下代理停止处理请求,则应该从许多指标中明显看出,例如每秒的基本字节输入/输出或网络/磁盘IO。
必须始终监控您的Kafka群集,以便能够了解当事情停止工作时正在发生的事情。在线有好几篇文章列出了最重要的Kafka,主机和JVM指标,例如:
关于你的第一个问题,我不确定你在问什么。您链接的页面是Kafka协议。它只详述了Kafka客户和经纪人如何互动。它不包括Kafka和Zookeeper之间的任何交互。