用无头服务在kubernetes上进行gRPC(nodejs)循环
我有一个3 nodejs grpc服务器pod和一个grpc服务的无头kubernetes服务(返回所有3个pod ips与dnstesting与geod主机从pod内)。 然而,所有grpc客户端请求总是在一台服务器上结束。
根据https://stackoverflow.com/a/39756233/2952128 (最后一段),每轮调用应该可能2017年第一季度。我正在使用grpc 1.1.2
我尝试为new Client(address, credentials, options)
提供{"loadBalancingPolicy": "round-robin"}
new Client(address, credentials, options)
并使用dns:///service:port
作为地址。 如果我正确地理解了文档/代码,这应该传递到C核,并使用新实现的循环信道创build。 ( https://github.com/grpc/grpc/blob/master/doc/service_config.md )
这是如何循环负载平衡器应该现在工作? 它已经发布与GRPC 1.1.2?
在深入研究Grpc-c核心代码和nodejs适配器之后,我发现它使用选项键"grpc.lb_policy_name"
。 因此,构buildgRPC客户端
new Client(address, credentials, {"grpc.lb_policy_name": "round_robin"})
作品。 请注意,在我原来的问题,我也使用round-robin
而不是正确的round_robin
我仍然不完全确定如何使用nodejs从服务端设置serviceConfig
,而不是使用客户端(通道)选项覆盖。