Отличный вопрос, который могут задать на собеседовании.
Ответ:
Да — если он не масштабирован горизонтально.
Если на сервере развернут единственный инстанс (установленная копия) API Gateway и он выйдет из строя, работа всех клиентов, которые в него обращаются, остановится.
Пользователи не смогут достучаться до микросервисов, даже если сами микросервисы продолжают работать.
❌ Что будет, если API Gateway «упадёт»?
1. Внешние клиенты потеряют доступ к сервисам.
2. Внутренние вызовы (если они идут через Gateway) тоже могут быть нарушены.
3. В логах вы увидите HTTP 502 / 503 ошибки (Bad Gateway / Service Unavailable).
4. Мониторинг начнёт фиксировать обрыв соединения и рост ошибок. Это будет сложно не заметить 🥲
👉 Как это решается?
Чтобы API Gateway не стал "узким горлышком", применяют следующие решения:
🟢 Горизонтальное масштабирование
Несколько инстансов API Gateway, развернутых за балансировщиком нагрузки. Тогда при сбое одного — остальные продолжают обслуживать запросы.
🟢 Health-check и авто-рестарт
Kubernetes и другие оркестраторы позволяют перезапускать поды/контейнеры при сбое.
🟢 Failover-механизмы
Некоторые решения "из коробки" поддерживают автоматическое переключение между инстансами при сбоях.
🟢 Разделение входящего трафика
В больших системах могут использовать несколько API Gateway по зонам или типам трафика (например, публичный API и внутренний API)
Несмотря на сбой API Gateway, внутренние сервисы продолжают жить, поэтому, если они не делают обратные вызовы в API Gateway для обращения в другие сервисы, то все начатые цепочки транзакций (запросов) будут выполнены.
Т.е. данные не теряются, процессы продолжаются.
API Gateway - потенциальная точка отказа в системе?
👉 Да
Но при нормальной инфраструктуре не должен быть ею. Мы разбираем это на программе по архитектуре. Это часть про стык Инфраструктуры и Архитектуры, который важно осознавать аналитикам.
#АрхитектураGA
📱 Tg | 💙 ВК | 💬 Max