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 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