grpc-go load balancing 的官方实现目前仅支持 rr,wrr 的实现好像是个半残品。
鉴于项目的需要,借鉴了 google 上的一些文章、grpc-go 的源码以及 etcd v3.5 的 clientv3 代码编写了此 repo 的代码,地址: https://github.com/xkeyideal/grpcbalance
lb 的实现其实只需要理解 resolver 与 balancer 的 interface 即可随心的改造成自己项目需要的实现方案。
本实现方案是基于 grpc v1.36.0 实现的,看了一下最新的 v1.37.0 与 v1.38.0 接口都是兼容的。
使用方法:
希望能帮助有需要的人,enjoy it