首页 > 解决方案 > 2对客户端/服务器是否可以只使用一个gRPC通道

问题描述

我有一个用例迫使我使用 2 对客户端/服务器,例如:我有 2 个进程,每个进程都在扮演客户端/服务器角色,因此我必须创建 2 对客户端/服务器。我的问题是尽量减少创建 2 个通道来实现这种通信的开销,我们是否有可能只使用一个通道?

注意:双流无济于事,因为在我的情况下,这两个进程扮演服务器/客户端角色。

感谢您提供任何进一步的帮助。

标签: grpcgrpc-dotnet

解决方案


创建服务器/客户端的开销实际上非常小(太小而无法在大多数应用程序中发挥任何重要作用。

当我们说“创建一个新的 gRPC 通道有一些开销并且是昂贵的操作”时,它的意思是“与在已建立的通道上发送 RPC 相比更昂贵”。您不应该经常创建新通道/服务器(例如,为每个 RPC 创建一个新通道),但是在应用程序启动时创建一个新通道和服务器是非常合理的事情,除非您正在做一些高度专业化的事情,否则它是不值得考虑创建一些额外通道的开销。

我不知道您的用例的详细信息,但我的一般反应是“不要在不必要的地方尝试过度优化”(您是否实际测量了影响 - 您可能会发现它完全可以忽略不计)而且我d 只需创建您需要的服务器/频道。


推荐阅读