Архитектура системDevOps / Архитектор

Объясните назначение и принципы работы API Gateway в современной архитектуре.

Проходите собеседования с ИИ помощником Hintsage

Ответ.

API Gateway — сервис-посредник между клиентами и внутренними микросервисами. Он агрегирует вызовы, управляет маршрутизацией, авторизацией, применяет политики безопасности и лимитирования, а также трансформирует и проксирует запросы.

API Gateway нужен, чтобы скрыть внутреннюю структуру сервисов от внешнего мира и унифицировать взаимодействие. Это помогает снизить связанность, ускорить развитие фронтендов и обеспечить централизованный контроль над доступом и логированием.

Пример настройки nginx как простейшего API Gateway:

server { listen 80; location /user/ { proxy_pass http://localhost:8081/; } location /order/ { proxy_pass http://localhost:8082/; } }

Ключевые особенности:

  • Централизованная аутентификация, мониторинг и логирование
  • Позволяет добавлять новые сервисы без изменений на клиенте
  • Гибко управляет маршрутизацией и версионированием API

Вопросы с подвохом.

Может ли один сервис обращаться к другому минуя API Gateway?

Внутренние сервисы могут использовать прямые вызовы для приватных сценариев, но для внешних клиентов API Gateway — основной способ доступа.

Является ли API Gateway Single Point of Failure?

Да, если не настроить кластеризацию и балансировку. Важно запускать несколько инстансов и использовать балансировщик.

Может ли API Gateway кешировать ответы?

Да, продвинутые гейтвеи умеют кешировать GET-запросы, что снижает нагрузку на сервисы и ускоряет отдачу данных. Пример настройка кеша в Kong:

plugins: - name: proxy-cache config: strategy: memory content_type: [application/json] cache_ttl: 300