Набор индикаторов работоспособности/готовности для службы Spring Boot, работающей поверх Kafka Streams.

Как правильно настроить индикаторы работоспособности для службы Spring Boot, работающей поверх Kafka Streams с подключением к БД? В качестве гипервизора контейнера используем Spring Cloud Streams и привязку Kafka Streams, Spring-Data JPA, Kubernetes. У нас есть, скажем, 3 реплики службы и 9 разделов для каждой темы. Типичная служба обычно объединяет сообщения из двух тем, сохраняет данные в базе данных и публикует данные обратно в другую тему kafka.

После перехода на Spring Boot 2.3.1 и изменения конечных точек живости/готовности K8s на новые:

  • /актуатор/здоровье/живость
  • /привод/здоровье/готовность

мы обнаружили, что по умолчанию у них нет никаких индикаторов работоспособности.

Согласно документация:

Actuator настраивает тесты жизнеспособности и готовности как группы работоспособности; это означает, что им доступны все функции групп здоровья. (...) По умолчанию Spring Boot не добавляет в эти группы другие индикаторы работоспособности.

Я считаю, что это правильный подход, но я не проверял это:

management.endpoint.health.group.readiness.include: readinessState,db,binders
management.endpoint.health.group.liveness.include: livenessState,ping,diskSpace

Мы стараемся охватить следующие варианты использования:

  • скользящее обновление: недоступный слот потребления (инстанс бездействия) при добавлении новой реплики
  • поток умер (выдано исключение во время выполнения)
  • БД недоступна во время запуска контейнера/во время работы службы
  • брокер недоступен

Я нашел похожий вопрос, однако я считаю, что текущий конкретно связанные с сервисами Kafka. Они отличаются по своей природе от сервисов REST.

Обновление: В весенней загрузке 2.3.1 индикатор состояния связывателей проверяет, находятся ли потоки в состоянии RUNNING или REBALANCING для Kafka 2.5 (ранее только RUNNING), поэтому я предполагаю, что случай непрерывного обновления с незанятым экземпляром обрабатывается его логика.


person Robert    schedule 25.06.2020    source источник