# task3-gray-publish
**Repository Path**: jack185/task3-gray-publish
## Basic Information
- **Project Name**: task3-gray-publish
- **Description**: 灰度发布(gateway+nacos)
- **Primary Language**: Java
- **License**: Not specified
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 3
- **Created**: 2023-11-28
- **Last Updated**: 2023-11-28
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
## 灰度发布
灰度发布,gateway 结合 nacos 实现灰度发布功能
### 拓补图
1. 请求头中参数为灰度名单用户
### 模块介绍
2.技术组件设计
1)order-server:接口模块
稳定版本输出内容:hello controller,port = 8082,并显式端口号,可以启动多个实例,以实现负载均衡效果;
灰度版本输出内容:hello gray controller,port = 8081,并显式端口号,可以启动多个实例,以实现负载均衡效果;
启动时需在 nacos 元数据中配置对应的 version 版本号,例如,稳定版本 version = 1.0;灰度版本 version = 2.0;
2)gateway-server:网关模块
网关模块中重写了负载均衡算法。
网关模块中添加了拦截器,根据请求 header 中的参数来筛选稳定实例和灰度实例,并交由负载均衡算法处理。
网关中配置灰度名单,即灰度名单中配置的用户访问灰度实例,灰度名单中未配置的用户则访问稳定实例。
### 测试
1. 请求头中参数为灰度名单用户
2. 请求头中参数为非灰度名单用户
