我们最近遇到了一个问题,kafka代理遇到了一个阻止io的内核问题(但我想是能够心跳回zookeeper)。这样做的结果是,Kafka代理留在了isr集合中,但实际上无法完成任何任务。
问题是:1)有没有关于Kafka在发出心跳之前检查什么的文件,或者只是让发出心跳的声音变小(我明白了)https://cwiki.apache.org/confluence/display/kafka/a+guide+to+the+kafka+protocol,但它似乎只是提到了协议,而没有谈论在心跳之前实际检查的内容)。
2) 就我而言,Kafka是令人心碎的,尽管所有的请求都失败了。有没有办法在kafka中使用更深的心跳来检查请求成功率等?或者我们需要使用像这样的外部工具https://github.com/pinterest/doctorkafka, https://www.slideshare.net/jiangjieqin/introduction-to-kafka-cruise-control-68180931 或者https://github.com/yahoo/kafka-manager
1条答案
按热度按时间ttp71kqs1#
关于第二点,Kafka经纪人提供了大量的指标。如果在您的案例中,代理停止处理请求,那么从许多指标来看,这应该是显而易见的,比如基本的每秒输入/输出字节数或网络/磁盘io。
始终监视你的Kafka簇是很重要的,这样才能理解当事情停止工作时发生了什么。网上有几篇好文章列出了最重要的kafka、主机和jvm指标,例如:
http://docs.confluent.io/current/kafka/monitoring.html#broker-指标
https://www.datadoghq.com/blog/monitoring-kafka-performance-metrics/#key-指标
关于你的第一个问题,我不知道你在问什么。你链接到的页面是Kafka协议。它只详细说明了Kafka的客户和经纪人是如何互动的。它不包括Kafka和Zookeeper之间的任何互动。