V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
The Go Programming Language
http://golang.org/
Go Playground
Go Projects
Revel Web Framework
xkeyideal
V2EX  ›  Go 编程语言

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

  •  
  •   xkeyideal · 2021-04-13 15:38:50 +08:00 · 1312 次点击
    这是一个创建于 1320 天前的主题,其中的信息可能已经有所发展或是发生改变。

    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

    3 条回复    2021-04-13 17:49:09 +08:00
    nacosboy
        1
    nacosboy  
       2021-04-13 15:54:27 +08:00
    好喜欢 README 里的插图,请问用什么 app 画的?
    xkeyideal
        2
    xkeyideal  
    OP
       2021-04-13 16:05:56 +08:00
    @nacosboy 从别人文章里摘录的,readme 里已经说明了
    vloony
        3
    vloony  
       2021-04-13 17:49:09 +08:00
    支持下大佬 哈哈哈哈哈
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2877 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 25ms · UTC 14:15 · PVG 22:15 · LAX 06:15 · JFK 09:15
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.