链接多个gRPC调用时何时创建gRPC客户端

时间:2019-10-05 01:54:22

标签: grpc grpc-go

我有几个gRPC服务器,并且希望将某些调用链接起来,这样流程就变成了:

Client X calls Server A
  └──> Server A
           ... some processing ... < 1 >
           calls Server B
             └──> Server B
                      ... some processing ...
                      returns Result B
           receives Result B
           ... some more processing ...
           returns Result A

为此,我每次创建服务器A RPC时都在为服务器B连接创建一个gRPC客户端(如上< 1 >所示)。我发现了一个类似的问题here,并且我知道这种方法与长期存在的连接不适合使用here中讨论的并发性。

从以上两个参考文献中我没有得到的是我应该创建gRPC客户端的时间。如果要与服务器B调用服务器C等进行更进一步的链接,每个服务器是否需要在进程开始时生成连接?这会引入每个服务器的启动依赖性吗?

此外,作为基线,我认为使用上下文可以实现很好的链接,并且仍然可以控制那些远程调用。这是gPRC的正确用法吗?

1 个答案:

答案 0 :(得分:1)

我们对GoDoc for ClientConn进行了改进。请参阅:https://github.com/grpc/grpc-go/pull/3096

让我们知道您的想法。谢谢。