0

假设您有 2 项服务:书籍和客户。假设客户想要收藏一本书。因此客户可能会向下一个服务发出 gRPC 请求。您如何准确地从一个服务到另一个服务进行 RPC 调用。

这是网络上唯一的例子。似乎表明了这一点,但问题是他们使用 golang 来进行服务内请求(作为客户端),并使用 grpc-node 作为服务器。是否有 grpc-node 从另一个服务对 grpc-node 服务器进行客户端 RPC 调用的示例?

结帐服务文件: https ://github.com/GoogleCloudPlatform/microservices-demo/blob/master/src/checkoutservice/main.go 原始文件: https ://github.com/GoogleCloudPlatform/microservices-demo/blob/master/ pb/demo.proto

目前,我假设在一个共享的 proto 文件中会有 2 个服务,并且在客户端文件中,客户端会使用另一个服务的组件调用 RPC 调用。

4

1 回答 1

2

您想要的 IIUC:客户端 <--> 服务1 <--> 服务2,每个服务都是使用 gRPC 实现的。

实施将是:

  • 客户端 <--> 服务1
  • 服务1 客户端(!) <--> 服务2

也就是说,您的服务1的实现必须充当 gRPC 服务器gRPC 客户端(对服务2进行调用)

gRPC 的“魔力”的一部分是允许您调用远程函数|方法,就好像该函数|方法是在本地实现的一样。但是,就是这样。以菊花链方式连接这些方法调用并没有什么神奇之处。

所以,如果函数是使用其他函数实现的,那么它一直是 gRPC 客户端-服务器海龟。

于 2020-07-21T16:14:36.053 回答