我正在使用gRPC(以及etcd作为发现服务)与服务器进行通信,以工人的身份构建python程序,需要代理功能以实现负载平衡,容错等。虽然golang客户端具有一些内置的负载平衡功能,但python客户端却没有。
我发现了这个方案here
在我的情况下:
等用于服务注册表
主机和服务提供商之间的 gRPC
我的问题是,是否有一个现有程序可以用作此方案的LB(在图片中),它可以从Etcd更改服务名称,并在gRPC服务之间进行负载平衡。或如何编写最少的代码来实现它(从现有的库中获取帮助)。
答案 0 :(得分:1)
根据服务的部署方式,Envoy作为代理可能是此体系结构中的负载平衡器的理想选择。
尽管these examples都使用Kubernetes,但它们为如何设置体系结构提供了一个不错的示例。
您可能还需要考虑使用here中所述的后备负载平衡架构。在这种情况下,您可能需要四处寻找诸如this one之类的grpclb协议的实现。