首页 文章

用于无头服务的kubernetes上的gRPC(nodejs)循环

提问于
浏览
2

我有一个3 nodejs grpc服务器pod和一个用于grpc服务的无头kubernetes服务(返回所有3个pod ips,其中dns使用来自pod内的getent hosts进行测试) . 但是,所有grpc客户端请求总是在一台服务器上结束 .

根据https://stackoverflow.com/a/39756233/2952128(最后一段),每次通话的循环赛应该是2017年第一季度 . 我正在使用grpc 1.1.2

我试图将 {"loadBalancingPolicy": "round-robin"} 作为 new Client(address, credentials, options) 的选项,并使用 dns:///service:port 作为地址 . 如果我正确理解文档/代码,则应将其传递给c-core并使用新实现的循环通道创建 . (https://github.com/grpc/grpc/blob/master/doc/service_config.md

这是循环负载均衡器应该如何工作吗?它已经与grpc 1.1.2一起发布了吗?

1 回答

  • 3

    在深入研究Grpc-c核心代码和nodejs适配器之后,我发现它可以通过使用选项键 "grpc.lb_policy_name" 来工作 . 因此,构建gRPC客户端

    new Client(address, credentials, {"grpc.lb_policy_name": "round_robin"})
    

    作品 . 请注意,在我原来的问题中我也使用了 round-robin 而不是正确的 round_robin

    我仍然不完全确定如何使用nodejs从服务端设置 serviceConfig 而不是使用客户端(通道)选项覆盖 .

相关问题