您如何正确编写Kafka Streams健康检查?

时间:2019-06-04 08:50:27

标签: apache-kafka apache-kafka-streams

Kafka会在内部杀死所有未正确轮询的节点,但我们不希望不良节点停滞不前,并且希望了解哪些节点正在工作,因此自然地我们希望构建经典的运行状况检查。

进行健康检查的明显方法是使用KafkaStream#state#isRunning,但这完全具有欺骗性。如果与Kafka的基础网络连接已断开,或者没有导致内部线程死亡的数十种情况中的任何一种,即使日志到处都引发了错误,KafkaStreams仍然报告自己仍然处于活动状态。是否有任何正确的方法来了解Kafka流内部发生的情况?与卡夫卡打交道时,是否期望进行健全的健康检查是错误的方法?

需要明确的是,我不是在谈论Kafka 集群的运行状况检查,尤其是Streams处理器节点。

0 个答案:

没有答案