API Gateway

API Gateway — единая точка входа для всех клиентских запросов в систему микросервисов. Клиент не знает и не должен знать про десятки внутренних сервисов — он общается с одним адресом, а Gateway решает, куда направить запрос (см. тему «Config, Gateway, Eureka» — здесь подробнее про сам компонент).

Клиент Gateway User-сервис Order-сервис Payment-сервис
Копнуть глубже

Что Gateway берёт на себя, кроме маршрутизации:

  • Аутентификация — проверка токена в одном месте, а не в каждом сервисе отдельно;
  • Rate limiting — ограничение частоты запросов от одного клиента, защита от перегрузки;
  • Логирование и трассировка — единая точка для записи метрик по всем запросам в систему;
  • Агрегация ответов — иногда Gateway сам собирает данные из нескольких сервисов в один ответ для клиента, чтобы не заставлять клиента делать несколько запросов.

Зачем единая точка входа, а не прямой доступ клиента к каждому сервису. Без Gateway клиент должен знать адреса всех сервисов и реализовывать общую логику (аутентификацию, retry) самостоятельно для каждого — это дублирование и хрупкость. С Gateway внутренняя структура системы (сколько сервисов, как они называются, где находятся) полностью скрыта от клиента — можно менять, объединять, разбивать сервисы внутри, не затрагивая публичный контракт с клиентом.

🎤 Закрыл тему, если можешь объяснить:
• роль API Gateway как единой точки входа;
• какую сквозную логику Gateway обычно берёт на себя (если дошёл до 2-го слоя).