【发布时间】:2018-07-27 02:05:54
【问题描述】:
试图了解如何在 C# 中管理 gRPC 通道。
正如频道摘要所述
与调用远程调用相比,创建通道是一项昂贵的操作,因此一般来说,您应该为尽可能多的调用重用单个通道。
因此,我将其视为创建了两个 Channel 实例,我得到了两个 TCP 连接。
简单代码
var channel1 = new Channel(host, port, ChannelCredentials.Insecure);
var channel2 = new Channel(host, port, ChannelCredentials.Insecure);
channel1.ConnectAsync().Wait();
channel2.ConnectAsync().Wait();
我希望在 CurrPorts 中看到两个连接,但只有一个:
当然,如果我在第二个通道中指定另一个主机/端口,或者只运行我的应用程序的两个实例,我会看到两个 TCP 连接。
根据这种行为,我猜想在 C# 实现中对具有相同主机/端口的通道进行了一些管理。但我很好奇这是一种在一个实例中创建确实不同的频道的方法吗?
【问题讨论】: