Для чего нужен эндпоинт /actuator/health?
- Что показывает /actuator/health?
Машиночитаемая проверка состояния: {"status":"UP"} для оркестратора и балансировщика. Агрегирует индикаторы — база, диск, брокер.
- Группы liveness и readiness для Kubernetes
- Детали наружу не показывать: show-details=when-authorized
- Свои проверки — HealthIndicator
А ещё Внешние зависимости в общий статус включать осторожно
Подробно
По его ответу принимаются автоматические решения: направлять ли трафик на экземпляр и не нужно ли его перезапустить. Поэтому проверку разделяют на две: готовность отвечает за включение в ротацию, живость — за необходимость перезапуска. Сам эндпоинт ничего не перезапускает, он лишь сообщает состояние. Полезно помнить и про безопасность: подробности состояния по умолчанию скрыты, и открывать их наружу не стоит, поскольку там появляются адреса баз и брокеров.
Что хотят услышать
- Назначение и формат.
- Пробы и безопасность.
Частые ошибки
- Включать в проверку готовности внешние зависимости.
- Открывать подробности состояния наружу.
Проверьте себя
Один верный вариант. Подумайте, потом откройте ответ.
Показать варианты и ответ
- ✓Чтобы инфраструктура автоматически проверяла, жив ли экземпляр
- ✗Чтобы показывать пользователям статус их запросов и очередь обработки
- ✗Чтобы приложение само перезапускалось при обнаружении внутренних ошибок
- ✗Чтобы собирать логи и метрики всех экземпляров приложения в одном месте
Что спросят дальше
- Чем проверка готовности отличается от проверки живости?
- Почему внешние зависимости не стоит проверять в этих пробах?
Разбор темы
- Actuator и наблюдаемость
Production-эндпоинты, health-проверки и probes, метрики через Micrometer, трассировка и безопасность эндпоинтов.
Связанные вопросы
Разбор собеседования с sotto
После собеседования sotto разбирает разговор: оценка, каждый вопрос — хорошо, частично или слабо, чего не хватило в ответе и над чем поработать к следующему разу. Первые 30 минут бесплатно.