Чтобы иметь дело с архитектурой микросервисов, он часто используется вместе с обратным прокси (например, nginx или apache httpd), а для сквозных проблем используется шаблон шлюза API для реализации . Иногда обратный прокси выполняет работу шлюза API.
Было бы хорошо увидеть четкие различия между этими двумя подходами. Похоже, что потенциальная выгода от использования шлюза API - это вызов нескольких микросервисов и агрегирование результатов. Все остальные функции шлюза API могут быть реализованы с помощью обратного прокси, например:
- Аутентификация (это можно сделать с помощью скриптов nginx LUA);
- Транспортная безопасность. Это сама задача обратного прокси;
- Балансировки нагрузки
- ....
Исходя из этого, возникает несколько вопросов:
- Имеет ли смысл использовать шлюз API и обратный прокси одновременно (например, запрос-> шлюз API-> обратный прокси (nginx) -> конкретный микосервис)? В каких случаях?
- Какие еще отличия могут быть реализованы с использованием шлюза API и которые не могут быть реализованы с помощью обратного прокси и наоборот?