Вопрос с собеседования · Spring

Для чего нужен эндпоинт /actuator/health?

JuniorSpring Boot и ActuatorSpring Boot
Ещё спрашивают так:
  • Что показывает /actuator/health?
Коротко

Машиночитаемая проверка состояния: {"status":"UP"} для оркестратора и балансировщика. Агрегирует индикаторы — база, диск, брокер.

  • Группы liveness и readiness для Kubernetes
  • Детали наружу не показывать: show-details=when-authorized
  • Свои проверки — HealthIndicator

А ещё Внешние зависимости в общий статус включать осторожно

Подробно

По его ответу принимаются автоматические решения: направлять ли трафик на экземпляр и не нужно ли его перезапустить. Поэтому проверку разделяют на две: готовность отвечает за включение в ротацию, живость — за необходимость перезапуска. Сам эндпоинт ничего не перезапускает, он лишь сообщает состояние. Полезно помнить и про безопасность: подробности состояния по умолчанию скрыты, и открывать их наружу не стоит, поскольку там появляются адреса баз и брокеров.

Что хотят услышать

  • Назначение и формат.
  • Пробы и безопасность.

Частые ошибки

  • Включать в проверку готовности внешние зависимости.
  • Открывать подробности состояния наружу.

Проверьте себя

Один верный вариант. Подумайте, потом откройте ответ.

Показать варианты и ответ
  • ✓Чтобы инфраструктура автоматически проверяла, жив ли экземпляр
  • ✗Чтобы показывать пользователям статус их запросов и очередь обработки
  • ✗Чтобы приложение само перезапускалось при обнаружении внутренних ошибок
  • ✗Чтобы собирать логи и метрики всех экземпляров приложения в одном месте

Что спросят дальше

  • Чем проверка готовности отличается от проверки живости?
  • Почему внешние зависимости не стоит проверять в этих пробах?

Разбор темы

Связанные вопросы

Партнёр платформы

Разбор собеседования с sotto

После собеседования sotto разбирает разговор: оценка, каждый вопрос — хорошо, частично или слабо, чего не хватило в ответе и над чем поработать к следующему разу. Первые 30 минут бесплатно.

Разбор собеседования