我可以重用GRPC连接吗?

时间:2019-05-02 14:32:28

标签: c# grpc

我可以通过为通道和客户端创建字段来重用连接,以便可以在多个呼叫中重用该客户端,还是应该为每个呼叫创建一个新的客户端?

public async Task DoSomething()
{
  var channel = new Channel("endpoint", ChannelCredentials.Insecure);
  var client = new Service.ServiceClient(channel);
  // call client
  await channel.ShutdownAsync();
}

ctor
{
  _channel = new Channel("endpoint", ChannelCredentials.Insecure);
  _client = new Service.ServiceClient(channel);
}
public async Task DoSomething()
{
  // call _client
}
public async Task Dispose()
{
  await _channel.ShutdownAsync();
}

1 个答案:

答案 0 :(得分:1)

  

我可以重用GRPC连接吗?

最简单的答案是,您应该这样做。

我认为,请重新使用客户端。最佳实践是维护这些连接,因为在创建新连接时可能会产生开销,而不是同时维护当前实例。我可以预见的唯一问题是您是否会遇到流限制,该限制也受您可以拥有的并发流数量的限制,但这是很多情况,可能不是您的情况。