nest js, GRP C архитектура серверов и микро сервисов - PullRequest
0 голосов
/ 13 февраля 2020

Я начал новый проект с гнездом js с микросервисами, но это мой первый проект по микросервисам, и мне не хватает знаний. Во время изучения документации я не могу найти способ использовать микросервис с grp c и HTTP одновременно.

В моей архитектуре есть несколько микросервисов, которые должны обслуживать REST API. для клиента, но должен также обслуживать запрос grp c для «внутренних» целей, это правильное решение?

1 Ответ

0 голосов
/ 18 февраля 2020

Неправильно говорить « Я не могу найти способ использовать микросервис с grp c и HTTP одновременно », поскольку GRP C использует HTTP. GRP C не является протоколом, это способ сериализации сообщений, предоставляя конечным точкам HTTP, у вас есть возможность выбирать между различными альтернативами, такими как XML; REST / JSON или GRP C.

Обычно следуя философии «гексагональной архитектуры» (https://en.wikipedia.org/wiki/Hexagonal_architecture_ (программное обеспечение) ), вы должны иметь возможность отделить логи c из адаптеров, и ваш проект может реализовать несколько адаптеров для одной и той же логики c, например один адаптер в HTTP / REST и другой в HTTP / GRP C. С другой стороны, один из способов избежать использования нескольких портов - всегда выбирать HTTP / GRP C и использовать Envoy в качестве прокси между HTTP / REST и HTTP / GRP C (см. https://grpc.io/docs/tutorials/basic/web/), но окончательное решение зависит от многих факторов

...