# spring-cloud-gray
**Repository Path**: wangyg6/spring-cloud-gray
## Basic Information
- **Project Name**: spring-cloud-gray
- **Description**: Spring Cloud版本控制和灰度starter
- **Primary Language**: Unknown
- **License**: Not specified
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 0
- **Created**: 2021-10-25
- **Last Updated**: 2021-10-25
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
## Spring Cloud版本控制和灰度发布
在我们使用spring mvc单体架构时,我们可以通过uri,或者请求头做多版本路由,虽然同一个功能需要维护多个版本的接口,但是对于系统而言,不会因为新增一个接口版本而影响到老用户。当我们使用spring cloud构建微服务平台时,也希望能做到这一点,然而spring cloud并没有提供这个功能。
在spring cloud的微服务体系中,大多是使用eureka做为注册中心,ribbon做为负载均衡,hystrix做为断路器。但是在国内网络中却鲜少关于spring-cloud的接口多版本控制的开源项目,而在国内,spring cloud做为越来越被创业公司认同的微服务框架,多版本控制的需求也越来越明显,于是就有了开发多版本控制和灰度管理的想法。
#### 多版本控制
* [spring-cloud-bamboo](spring-cloud-bamboo/README.md)
* spring-cloud-start-multi-version
* [spring-cloud-mult-version-samples](spring-cloud-mult-version-samples/README.md)
#### 灰度发布
* [spring-cloud-gray-core](spring-cloud-gray-core/README.md)
* spring-cloud-gray-client
* spring-cloud-gray-server
* spring-cloud-start-gray
* spring-cloud-start-gray-server
* [spring-cloud-gray-samples](spring-cloud-gray-samples/README.md)
* [spring-cloud-gray-zookeeper-samples](spring-cloud-gray-zookeeper-samples/README.md)
#### maven 依赖
jar包已经上传到maven中央库,可以通过maven直接从中央库下载
```xml
cn.springcloud.gray
spring-cloud-starter-multi-version
{version}
cn.springcloud.gray
spring-cloud-starter-gray
{version}
cn.springcloud.gray
spring-cloud-starter-gray-server
{version}
```
#### 不足
gray目前只有灰度管理的基本功能, 像数据持久化,高可用,推送灰度调整消息等, 都没有实现。 也没有界面化, 仅仅只有接口列表。
#### 扩展思考
gray目前仅仅只支持spring cloud eureka, 但是在spring cloud中,eureka只是做为其中一个注册中心, 如果要做spring cloud的灰度管理, 就还需要兼容其他的注册中心, 比如zookeeper, consul等。