# gray-loadbalancer **Repository Path**: jiang-w/gray-loadbalancer ## Basic Information - **Project Name**: gray-loadbalancer - **Description**: 使用版本号,来解决openfeign的灰度发布问题 - **Primary Language**: Java - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 8 - **Forks**: 0 - **Created**: 2024-04-07 - **Last Updated**: 2025-11-18 ## Categories & Tags **Categories**: Uncategorized **Tags**: LoadBalancer, SpringCloud, openfeign ## README # gray-loadbalancer #### 介绍 该项目通过实现在配置文件中定义版本号,通过版本号来控制feign之间的调用,从而解决openfeign的灰度发布问题, 注意:本项目只提供思路,具体是否符合业务场景,请自行判断 #### 软件架构 软件架构说明 ![img.png](img.png) ####网关路由决策 路由服务中,高版本占比当前服务总数量大于50%(可配置),则进行全部路由到高版本服务上, 如果服务集群版本号相同,则进行默认的权重策略(可根据业务实现其他负载均衡策略); ####客户端路由决策 如果调用的服务集群有与当前服务版本号相同的,则直接路由到当前服务,如果没有版本号相同的, 则进行默认的权重策略(可根据业务实现其他负载均衡策略); #### 安装使用教程 1. 导入项目 2. 在项目中引入项目 3. 在配置文件中,根据是否是网关/客户端配置对应的配置参数,从而实现指定版本间的互相调用 #### 使用说明 1. 导入项目后,在配置文件中定义软件版本号即可 ``` gray: version: 1.0 loadbalancer: gateway: enable: true spring: application: name: gateway-demo cloud: nacos: discovery: server-addr: 127.0.0.1:8848 namespace: jw-cloud metadata: gray: version: ${gray.version:1.0} ``` #### 参与贡献 1. Fork 本仓库 2. 新建 Feat_xxx 分支 3. 提交代码 4. 新建 Pull Request #### 特技 1. 使用 Readme\_XXX.md 来支持不同的语言,例如 Readme\_en.md, Readme\_zh.md 2. Gitee 官方博客 [blog.gitee.com](https://blog.gitee.com) 3. 你可以 [https://gitee.com/explore](https://gitee.com/explore) 这个地址来了解 Gitee 上的优秀开源项目 4. [GVP](https://gitee.com/gvp) 全称是 Gitee 最有价值开源项目,是综合评定出的优秀开源项目 5. Gitee 官方提供的使用手册 [https://gitee.com/help](https://gitee.com/help) 6. Gitee 封面人物是一档用来展示 Gitee 会员风采的栏目 [https://gitee.com/gitee-stars/](https://gitee.com/gitee-stars/)