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