grpc客户端实现如何同时管理更多请求?

时间:2017-02-24 14:33:09

标签: go grpc

我在我正在构建的新软件中使用grpc作为IPC,但我遇到了这个问题:Go中的grpc客户端植入是同步还是异步?
在互联网上冲浪我发现C ++既有实现,但在Go中缺少有关此功能的文档(除了GitHub上的问题)。
出于这个原因,我开始检查客户端代码,我发现客户端请求是由invoke函数(here代码)创建的,似乎是同步运行的。 出于这个原因,我假设不是使用全局客户端然后传递给使用grpc函数的结构,而是应该为每个请求创建一个客户端以防止同步行为。
例如 而不是:

type Foo struct {
    ClientA *grpc.Client
}
type Bar struct {
    ClientB *grpc.Client
}
//Other stuff
client := createNewClient() //This function return a *grpc client 
foo := Foo{client}
bar := Bar{client}

我应该为FooBar struct的每个函数创建一个新客户端,用于执行不是线程阻塞的调用。这是对的吗?

0 个答案:

没有答案