# eureka-grayscal
**Repository Path**: XinSuiNian/eureka-grayscal
## Basic Information
- **Project Name**: eureka-grayscal
- **Description**: eureka 灰度starter
- **Primary Language**: Java
- **License**: Apache-2.0
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 0
- **Created**: 2021-09-29
- **Last Updated**: 2021-11-05
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# 介绍
本组件是针对spring-cloud eureka做的灰度
当遇到以下场景时,可以考虑使用本starter插件
一、需要做不同环境灰度发布
二、开发过程本地启动项目,但是使用公司eureka(非自己本机启动的eureka)作为注册中心时
# 版本说明
本starter内部版本如下
| 组件 | 版本 |
|---|---|
| spring-boot | 2.3.2.RELEASE |
| spring-cloud | Hoxton.SR9 |
| spring-cloud-alibaba | 2.2.6.RELEASE |
# 原理介绍
在前端发起请求时,需要再请求头中带有一个固定参数,同时在对应的eureka client端设置eureka 的metadata信息
利用eureka的metadata,在注册中心中找到对应的服务,从而进行服务调用
# 安装教程
```
io.gitee.xinsuinian
eureka-grayscale-spring-cloud-starter
{version}
```
# 使用教程
## 依赖添加
```
io.gitee.xinsuinian
eureka-grayscale-spring-cloud-starter
{version}
```
## 添加基础扫描
```
@SpringBootApplication(scanBasePackages = {"com.lwq.eureka.*"})
```
## eureka client的配置
在需要灰度的eureka client 端增加如下配置信息
```
eureka:
instance:
metadata-map:
app-gray-name: test
```
注意:metadata中 的app-gray-name 不可更改,因为后续会利用它作为请求头来实现灰度
注意:metadata中 的app-gray-name 不可更改,因为后续会利用它作为请求头来实现灰度
注意:metadata中 的app-gray-name 不可更改,因为后续会利用它作为请求头来实现灰度
## 前端请求头添加
当前端发起请求时,需要再请求头中添加 app-gray-name,和eureka client中的value 值保持一直就好
如果没有和eureka client 中设置 app-gray-name对应的value相同的,那么会正常的路由
注意:请求头中的header 名称必须是app-gray-name,不可更改,否则后续可能找不到对应的路由
注意:请求头中的header 名称必须是app-gray-name,不可更改,否则后续可能找不到对应的路由
注意:请求头中的header 名称必须是app-gray-name,不可更改,否则后续可能找不到对应的路由