Сервис зависит от внешнего платёжного API. Стоит ли включать проверку его доступности в readiness-пробу?
- Включать ли внешний API в health-проверку?
Нет: readiness отражает готовность самого пода. Если внешний API упал, все поды станут неготовыми, сервис пропадёт целиком — даже функции, не связанные с оплатой.
- Внешнюю зависимость защищают таймаутом, circuit breaker и деградацией
- В readiness — только то, без чего под не может обслужить ничего
- Состояние зависимостей — в отдельной группе health для мониторинга
А ещё Тем более не в liveness — будут бесконечные перезапуски
Подробно
Логика такая: readiness управляет тем, идёт ли на под трафик. Если в неё включить внешнюю зависимость, то при её падении все поды одновременно объявят себя неготовыми — балансировщик уберёт их из ротации, и даже те запросы, которым платёжный API не нужен, перестанут обслуживаться. Полный отказ вместо частичной деградации. Правильный подход: в readiness — только то, без чего под не может работать вообще (например, инициализация и собственная база), а состояние внешних зависимостей выносят в отдельный health group для наблюдения и защищают circuit breaker с деградацией. Тем более нельзя ставить внешние проверки в liveness — там это приведёт к бесконечным перезапускам контейнера.
Что хотят услышать
- Ответ и каскадный эффект.
- Что включать в readiness.
- Как защищаться от внешней зависимости.
Частые ошибки
- Включать все зависимости в readiness «для полноты картины».
- Проверять внешние сервисы в liveness и получать циклические рестарты.
Проверьте себя
Один верный вариант. Подумайте, потом откройте ответ.
Показать варианты и ответ
- ✗Да, обязательно: readiness должна отражать состояние всех зависимостей
- ✗Да, но только если внешний API отвечает быстрее 100 мс
- ✓Обычно нет: сбой чужого API выведет все поды из ротации — будет полный отказ
- ✗Разницы нет — readiness и liveness проверяют одно и то же
Что спросят дальше
- Как настроить отдельную health group для наблюдения?
- Что произойдёт при добавлении внешней проверки в liveness?
Разбор темы
- Actuator и наблюдаемость
Production-эндпоинты, health-проверки и probes, метрики через Micrometer, трассировка и безопасность эндпоинтов.
Связанные вопросы
Разбор собеседования с sotto
После собеседования sotto разбирает разговор: оценка, каждый вопрос — хорошо, частично или слабо, чего не хватило в ответе и над чем поработать к следующему разу. Первые 30 минут бесплатно.