我正在尝试使用基于node.js的负载均衡的haproxy负载均衡器,从单个node.js客户端对多个TCP后端的rpc调用进行负载均衡。在创建grpc客户端时,我提供了这个负载均衡器的dns-name:port,根据https://github.com/grpc/grpc/blob/master/doc/load-balancing.md的说法,它应该被视为负载均衡器地址,并且应该打开与每个lb的后端服务器的子通道。但是我可以看到,打开的唯一通道是与负载均衡器,并且所有rpc仅发送到单个服务器,直到tcp空闲连接超时到达并且与新服务器建立了新的tcp连接。
我只想问一下grpc如何检测客户端是连接到负载均衡器还是连接到服务器?有没有办法告诉客户端它连接的地址是负载均衡器地址,因此它应该使用grpc-lb策略而不是pick-first?
发布于 2017-08-25 17:18:50
我后来了解到,为了让负载平衡策略判断出馈送的地址是否是负载均衡器的地址,它需要一个额外的布尔值来指示它是否是lb地址。因此,我需要为我的负载均衡器地址设置SRV记录,以便获得grpc的负载平衡策略所需的这些额外信息,根据此https://github.com/grpc/proposal/blob/master/A5-grpclb-in-dns.md
https://stackoverflow.com/questions/45835875
复制相似问题