【发布时间】:2021-03-09 23:57:58
【问题描述】:
我有一个用例迫使我使用 2 对客户端/服务器,例如: 我有 2 个进程,每个进程都在扮演客户端/服务器角色,因此我必须创建 2 对客户端/服务器。 我的问题是尽量减少创建 2 个 Channel 来实现这种通信的开销,我们是否有可能只使用一个 Channel?
注意:双流不会有帮助,因为在我的情况下,两个进程扮演服务器/客户端角色。
感谢您的进一步帮助。
【问题讨论】:
标签: grpc grpc-dotnet
我有一个用例迫使我使用 2 对客户端/服务器,例如: 我有 2 个进程,每个进程都在扮演客户端/服务器角色,因此我必须创建 2 对客户端/服务器。 我的问题是尽量减少创建 2 个 Channel 来实现这种通信的开销,我们是否有可能只使用一个 Channel?
注意:双流不会有帮助,因为在我的情况下,两个进程扮演服务器/客户端角色。
感谢您的进一步帮助。
【问题讨论】:
标签: grpc grpc-dotnet
创建服务器/客户端的开销实际上非常小(太小而无法在大多数应用程序中发挥任何重要作用。
当我们说“创建一个新的 gRPC 通道有一些开销并且是昂贵的操作”时,它的意思是“与在已建立的通道上发送 RPC 相比更昂贵”。您不应该经常创建新通道/服务器(例如,为每个 RPC 创建一个新通道),但是在应用程序启动时创建一个新通道和服务器是非常合理的事情,除非您正在做一些高度专业化的事情,否则它是不值得考虑创建一些额外频道的开销。
我不知道您的用例的详细信息,但我的一般反应是“不要在不必要的地方尝试过度优化”(您是否实际测量过影响 - 您可能会发现它完全可以忽略不计)我只需创建您需要的服务器/频道。
【讨论】: