grpc-node: Как выполнять внутрисервисные запросы и есть ли примеры внутрисервисных запросов?

Скажем так, у вас есть 2 сервиса: Книги и Клиенты. Допустим, покупатель хочет поставить книгу в избранное. Таким образом, клиент может отправить запрос gRPC в следующую службу. Как именно вы можете выполнить RPC-вызов от одной службы к другой.

Это единственный пример в сети. Кажется, это показывает это, но проблема в том, что они используют golang для внутрисервисного запроса (в качестве клиента) и используют grpc-node в качестве сервера. Есть ли пример, когда grpc-node выполняет RPC-вызов на стороне клиента на сервер grpc-node из другой службы?

файл службы оформления заказа: https://github.com/GoogleCloudPlatform/microservices-demo/blob/master/src/checkoutservice/main.go Протофайл: https://github.com/GoogleCloudPlatform/microservices-demo/blob/master/pb/demo.proto

На данный момент я предполагаю, что в общем прото-файле будет 2 службы, а в клиентском файле клиент вызовет вызов RPC с компонентами другой службы.


person TheRoadLessTaken    schedule 20.07.2020    source источник


Ответы (1)


IIUC вы хотите: клиент ‹--› служба 1 ‹--› служба 2, и каждая служба реализуется с использованием gRPC.

Реализация будет:

  • клиент ‹--› сервис 1
  • сервис 1 клиент (!) ‹--› сервис 2

А именно, ваша реализация службы 1 должна функционировать как сервер gRPC и клиент gRPC (выполняя вызов службы 2)

Часть магии gRPC заключается в том, что он позволяет вам вызывать удаленные функции | методы, как если бы этот метод функции был реализован локально. Но это все. Нет никакой дополнительной магии в последовательном соединении этих вызовов методов.

Итак, если функции реализованы с использованием других функций, это gRPC клиент-серверные черепахи полностью вниз.

person DazWilkin    schedule 21.07.2020