Как я могу создать интерфейс для микросервиса Spring с gRPC на бэкэнде?

У меня вопрос: как я могу вручную разработать интерфейс для микросервиса Spring, в котором есть контроллер rest и контроллер grpc? Я могу понять, как это работает с контроллерами отдыха, но как это может работать с grpc, я понятия не имею. Помогите, пожалуйста. У меня есть вопросы о сопоставлении и о том, как оно должно взаимодействовать с html-клиентом. примерная схема: db => service => grpc controller (который реализует методы rpc из файла proto) => frontend Как я могу предоставить клиентский интерфейс для контроллера grpc?


person Дмитрий Гордеев    schedule 09.12.2018    source источник
comment
Ваш вопрос довольно широкий, вам лучше спросить что-нибудь более точное, если вы хотите, чтобы сообщество Stack Overflow помогло ...   -  person GMB    schedule 09.12.2018
comment
Я не уверен, что вы имели в виду под контроллером grpc. Вы имеете в виду (1) сервер grpc или (2) контроллер отдыха, у которого есть клиент grpc, который общается с некоторым сервером grpc? Для (1) вы можете попробовать github.com/LogNet/grpc-spring-boot- стартер. Для (2) клиент переднего плана по-прежнему является клиентом отдыха, и запрос от клиента переднего плана будет запускать контроллер отдыха для запуска клиента grpc, говорящего с серверной частью grpc, а затем для рендеринга ответа grpc от серверной части в html / json, а затем отправить ответ клиенту переднего плана.   -  person user675693    schedule 03.01.2019


Ответы (1)


На самом деле это зависит от требований вашего проекта, но для идеального сценария: вам нужны как минимум два микросервиса, одна из них - это сторона сервера GRPC, на которой у вас будет ваша бизнес-логика и интеграция с БД, а вторая - для стороны клиента GRPC, а также контроллеры Spring MVC.

Расход будет:

(GRPC-Client-Microservice) UI - ›Spring MVC Controllers -› Сервисный уровень (у него будет клиент GRPC-Server-Microservice для вызова GRPC-API)

(GRPC-Server-Microservice) @GrpcService - ›@Service -› @Repository - ›БД

Надеюсь, он ответит на ваш вопрос. Если вам все еще нужны подробности, дайте мне знать, я создам приведенный выше пример и поделюсь с вами.

person Az.MaYo    schedule 13.10.2020