【发布时间】:2018-01-31 19:36:10
【问题描述】:
我正在尝试使用具有基于 TCP 的负载平衡的 haproxy 负载平衡器对从单个 node.js 客户端对多个 node.js 后端的 rpc 调用进行负载平衡。我在创建 grpc 客户端时提供了这个负载均衡器的 dns-name:port,根据https://github.com/grpc/grpc/blob/master/doc/load-balancing.md,它应该被视为负载均衡器地址,并且每个 lb 的后端服务器都应该打开一个子通道。但我可以看到唯一打开的通道是负载均衡器,所有 rpc 都只发送到单个服务器,直到 tcp idle connection-timeout 命中并且新的 tcp 连接与新服务器建立。
只是想问一下 grpc 如何检测客户端是连接负载均衡器还是服务器?有什么方法可以告诉客户端它连接的地址是负载平衡器地址,因此它应该使用 grpc-lb 策略而不是优先选择?
【问题讨论】: