【发布时间】:2019-05-03 00:50:23
【问题描述】:
我已经使用 Google 的 gRPC 工具包实现了服务器和客户端。在测试时,我注意到从客户端到服务器的 TCP 连接永远不会超过一个,无论我构建了多少 Channel 实例。
我计划通过 HAProxy 使用 Google 所谓的“proxy load balancing”。因此,我需要从我的客户端(比如服务 A)到我的服务器(比如服务 B)的多个连接。如果创建的连接不超过一个,则 HAProxy 会为该连接选择一项服务,而其他任何服务器都不会看到任何负载。
我尝试在客户端和服务器端(同时在双方)使用ChannelOptions.MaxConcurrentStreams,但没有任何运气。如前所述,我创建了多个 Channel 实例,但无济于事。我发现唯一有效的技术是创建多个进程,这显然是不理想的。
如何才能完全启用 Google 的“代理负载平衡”方案?
【问题讨论】:
-
您在使用 gRPC C++ 吗? “强制”多个连接的标准方法是使用不同的 ChannelArgs 创建您的频道,这将绕过否则会发生的子频道/连接共享。
-
C#,对不起,我只在标签中提到过。有没有我可以添加的无意义的 ChannelArg 不会改变任何东西但会破坏共享?
-
把这种方法称为“标准方法”对我来说是夸大了。它会起作用,但不是预期用途,因此没有真正毫无意义的 ChannelArg 来实现此目的。