推广一个自己写的 grpc-go load balancing 的实现与及改造成自定义 lb 的 github repo

2021-04-13 15:38:50 +08:00
 xkeyideal

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 接口都是兼容的。

使用方法:

  1. 常规的 lb 方案可直接引用该 repo,特殊要求的 lb 不建议直接引用该 repo,可阅读代码了解原理后根据需求修改;
  2. 本代码没有实现 endpoints 动态变化的部分代码,但 resovler 里提供了 SetEndpoint 方法

希望能帮助有需要的人,enjoy it

1338 次点击
所在节点    Go 编程语言
3 条回复
nacosboy
2021-04-13 15:54:27 +08:00
好喜欢 README 里的插图,请问用什么 app 画的?
xkeyideal
2021-04-13 16:05:56 +08:00
@nacosboy 从别人文章里摘录的,readme 里已经说明了
vloony
2021-04-13 17:49:09 +08:00
支持下大佬 哈哈哈哈哈

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/770353

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX