💎 Пример схемы архитектуры проекта #FarmFreshGA 💎
Самое простое в проектировании архитектуры микросервисов — создать схему, в которой есть только синхронные взаимодействия и один вид API, например, REST API. Однако в реальных системах редко встречаются решения, где используется только синхронный обмен данными.
Рассказываю, что к чему при проектировании архитектуры на примере схемы, прикреплённой к посту, где пока отсутствуют асинхронные взаимодействия.
1. Для проектирования архитектуры FarmFresh выбран шаблон API Gateway
Все запросы от клиентских приложений (Frontend) направляются в единый централизованный шлюз и далее проксируются (перенаправляются) на отдельные микросервисы, в зависимости от запроса.
2. Согласно предложенной схеме, внутреннее взаимодействие микросервисов организовано также через API Gateway
Надо понимать, что такое решение не всегда удачно.
Пример: Если сервису заказов нужно вернуть полную информацию о нём на Frontend, включая данные о товарах, то вместо прямого запроса в микросервис "Каталог товаров" придётся прогонять запрос через лишний слой API Gateway. Это может создавать ненужную задержку.
3. Снаружи для клиентов может быть только REST API, а “под капотом” всё что угодно
На предложенной схеме видим, что часть микросервисов предлагает взаимодействие через gRPC для ускорения обмена данными, а часть — через REST API. Однако слишком много разных видов API может усложнить разработку и сопровождение.
Простота и единообразие — залог успешной архитектуры.
Но зависит от проекта))) Где-то это просто нужно и точка.
#АрхитектураGA
Продолжение 👇
Post #2088
4.84K
GetAnalyst FarmFresh - Архитектура - этап 1.png307.1 KB
- 👍 20
- 🔥 5
- ❤ 3
- 💯 1