Метрики собирает система мониторинга, трафик распределяет балансировщик, а неработающие экземпляры исключаются по health-check. Масштабирование выполняет отдельный контроллер по выбранным сигналам.
Отслеживание нагрузки и обеспечение отказоустойчивости сервисов
Метрики собирает система мониторинга, трафик распределяет балансировщик, а неработающие экземпляры исключаются по health-check. Масштабирование выполняет отдельный контроллер по выбранным сигналам.
Короткий ответ
Что ответить на собеседовании
Подробный разбор
Ответ с пояснениями
Условие
Система состоит из масштабируемого набора экземпляров userService, каждый из которых взаимодействует с базой данных. Требуется определить, какие компоненты и каким образом должны:
- мониторить текущую нагрузку на каждый экземпляр userService;
- выявлять, какой из экземпляров перегружен, а какой имеет свободные ресурсы;
- выполнять проверку состояния (health‑check) для обнаружения неработающих экземпляров.
Ответ
Метрики собирает система мониторинга, трафик распределяет балансировщик, а неработающие экземпляры исключаются по health-check. Масштабирование выполняет отдельный контроллер по выбранным сигналам.
Для нагрузки нужны RPS, число активных запросов, latency, ошибки, CPU, память и ожидание соединений с БД. Readiness определяет готовность получать трафик; liveness — необходимость перезапуска, поэтому недоступность БД не должна автоматически вызывать перезапуск всех экземпляров. Балансировщик может учитывать активные соединения или запросы, но не знает всю бизнес-нагрузку. При насыщенной общей БД добавление userService способно ухудшить ситуацию: нужны лимиты соединений, backpressure и анализ узкого места.