【问题标题】:Kafka deep healthcheckKafka 深度健康检查
【发布时间】:2018-02-07 11:17:58
【问题描述】:

我们最近遇到了一个问题,即 Kafka 代理遇到了一个阻塞 IO 的内核问题(但我猜它能够心跳返回给 zookeeper)。这样做的结果是 Kafka broker 留在了 ISR 集中,但实际上无法完成任何任务。

问题是: 1)是否有任何文档说明 Kafka 在发出心跳之前检查了什么,或者它只是在发出心跳(我看到https://cwiki.apache.org/confluence/display/KAFKA/A+Guide+To+The+Kafka+Protocol,但它似乎只是提到了协议而没有谈论在心跳之前实际检查的内容)。

2) 在我的例子中,即使所有请求都失败了,Kafka 仍然在跳动。有没有办法在 Kafka 中使用更深的心跳来检查请求成功率等?还是我们需要使用https://github.com/pinterest/doctorkafkahttps://www.slideshare.net/JiangjieQin/introduction-to-kafka-cruise-control-68180931https://github.com/yahoo/kafka-manager等外部工具

【问题讨论】:

    标签: apache-kafka streaming message-queue kafka-producer-api


    【解决方案1】:

    对于您的第二点,Kafka 代理会发出大量指标。如果在您的情况下,代理停止处理请求,那么从许多指标中应该很明显,例如每秒输入/输出的基本字节数或网络/磁盘 IO。

    必须始终监控您的 Kafka 集群,以便能够了解当事情停止工作时发生了什么。网上有几篇好文章列出了最重要的 Kafka、主机和 JVM 指标,例如:

    关于你的第一个问题,我不确定你在问什么。您链接到的页面是 Kafka 协议。它只详细说明了 Kafka 客户端和代理如何交互。它不包括 Kafka 和 Zookeeper 之间的任何交互。

    【讨论】:

    • 所以我想答案是否定的,Kafka 没有深度健康检查,我们应该建立一个外部监控系统来检测错误并关闭代理以处理正常心跳无法检测到的故障?对于第二个问题,我正在尝试查找能够告诉我 Kafka 在进行心跳时检查的确切内容的文档。
    猜你喜欢
    • 2018-12-25
    • 1970-01-01
    • 2014-10-02
    • 2021-09-13
    • 2019-11-03
    • 1970-01-01
    • 1970-01-01
    • 2021-04-20
    • 2017-07-16
    相关资源
    最近更新 更多