我正在尝试使用带有基于TCP的负载平衡的haproxy负载均衡器从单个node.js客户端对多个node.js后端进行rpc调用。我在创建grpc客户端时提供了这个负载均衡器的dns-name:端口,根据https://github.com/grpc/grpc/blob/master/doc/load-balancing.md,应该将其视为负载均衡器地址,并且每个lb&#应该打开一个子通道39; s后端服务器。但我可以看到,打开的唯一通道是负载均衡器,所有rpc仅发送到单个服务器,直到tcp空闲连接超时命中并且新服务器设置了新的tcp连接。
只是想问一下grpc如何检测客户端是否与负载均衡器或服务器连接?有没有办法告诉客户端它连接的地址是负载平衡器地址,因此它应该使用grpc-lb策略而不是先选择?
答案 0 :(得分:0)
我后来了解到,对于负载平衡策略来判断所提供的地址是否是负载均衡器,它需要一个额外的布尔值来指示它是否是lb-address。所以我需要为我的负载均衡器地址设置SRV记录,以获得grpc的负载均衡策略所需的额外信息,根据此https://github.com/grpc/proposal/blob/master/A5-grpclb-in-dns.md