common-gray 灰度路由使用
什么是灰度路由
灰度路由是一种服务发布策略,通过在请求中携带版本标识,将流量路由到指定版本的服务实例。常用于新功能测试、版本平滑过渡等场景。
添加依赖
在需要支持灰度路由的微服务中添加依赖:
<dependency>
<groupId>com.pig4cloud</groupId>
<artifactId>pigx-common-gray</artifactId>
</dependency>
服务启动指定版本
版本 A 服务启动
启动订单服务的 A 版本:
java -Dspring.cloud.nacos.discovery.metadata.VERSION=A -Dserver.port=7001 -jar demo-biz.jar
版本 B 服务启动
启动订单服务的 B 版本:
java -Dspring.cloud.nacos.discovery.metadata.VERSION=B -Dserver.port=7002 -jar demo-biz.jar
💡版本命名规范
VERSION 值可以是任意字符串,建议使用语义化命名,如 v1、v2、stable、beta 等
前端配置版本
v5.8+ 版本配置
在项目根目录的 .env 文件中配置:
# v5.8+ 版本通过 .env 维护版本
VITE_GRAY_VERSION = A
v5.7 及以下版本配置
在 request.ts 中添加请求头:
// request.ts 中新增如下代码
config.headers['VERSION'] = 'A' // 目标版本
工作原理
- 前端在请求头中携带
VERSION 标识
- 网关接收请求后,根据
VERSION 值选择对应版本的服务实例
- 请求被路由到指定版本的服务进行处理
⚠注意事项
确保前端配置的版本号与后端启动时指定的 VERSION 参数一致,否则请求可能路由失败