Как правильно написать проверку здоровья Kafka Streams? - PullRequest
2 голосов
/ 04 июня 2019

Кафка внутренне уничтожит все узлы, которые неправильно опрашивают, но мы не хотим, чтобы плохие узлы оставались в рабочем состоянии, и мы хотим видеть, какие узлы работают, поэтому, естественно, мы хотим создать классическую проверку работоспособности.

Очевидный способ создать проверку здоровья - использовать KafkaStream#state#isRunning, но это полностью обманчиво. Если основное сетевое соединение с Kafka не работает или какая-либо из дюжины вещей, которые не приводят к смерти внутреннего потока, KafkaStreams по-прежнему сообщает о том, что она жива, даже если журналы повсеместно выдают ошибки. Есть ли какой-нибудь правильный способ получить представление о том, что происходит внутри потоков Кафки? Ожидает ли здравомыслящая проверка здоровья неправильный подход к работе с Кафкой?

Для ясности, я не говорю о проверках работоспособности кластера Kafka , в частности, процессорного узла Streams.

...