【问题标题】:gRPC client not using grpc-lb even with load-balancer address即使使用负载平衡器地址,gRPC 客户端也不使用 grpc-lb
【发布时间】: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 策略而不是优先选择?

【问题讨论】:

    标签: node.js grpc


    【解决方案1】:

    我后来了解到,为了让负载平衡策略确定所馈送的地址是否属于负载平衡器,它需要一个额外的布尔值来指示它是否是 lb 地址。因此,我需要为我的负载平衡器地址设置 SRV 记录,以获取 grpc 的负载平衡策略所需的附加信息,根据https://github.com/grpc/proposal/blob/master/A5-grpclb-in-dns.md

    【讨论】:

      猜你喜欢
      • 2022-01-17
      • 1970-01-01
      • 2022-09-28
      • 2019-10-20
      • 2018-11-22
      • 2022-01-28
      • 2015-02-11
      相关资源
      最近更新 更多