Commit 557277a6 by Nepxion

修改介绍

parent 04f281c1
...@@ -6,7 +6,7 @@ ...@@ -6,7 +6,7 @@
[![Build Status](https://travis-ci.org/Nepxion/Discovery.svg?branch=master)](https://travis-ci.org/Nepxion/Discovery) [![Build Status](https://travis-ci.org/Nepxion/Discovery.svg?branch=master)](https://travis-ci.org/Nepxion/Discovery)
[![Codacy Badge](https://api.codacy.com/project/badge/Grade/8e39a24e1be740c58b83fb81763ba317)](https://www.codacy.com/project/HaojunRen/Discovery/dashboard?utm_source=github.com&utm_medium=referral&utm_content=Nepxion/Discovery&utm_campaign=Badge_Grade_Dashboard) [![Codacy Badge](https://api.codacy.com/project/badge/Grade/8e39a24e1be740c58b83fb81763ba317)](https://www.codacy.com/project/HaojunRen/Discovery/dashboard?utm_source=github.com&utm_medium=referral&utm_content=Nepxion/Discovery&utm_campaign=Badge_Grade_Dashboard)
Nepxion Discovery是一款对Spring Cloud Discovery服务注册发现、Ribbon负载均衡、Feign和RestTemplate调用、Hystrix或者阿里巴巴Sentinel熔断隔离限流降级的增强中间件,其功能包括灰度发布(包括切换发布和平滑发布)、服务隔离、服务路由(包括多机房区域路由、多版本路由和多IP和端口路由)、服务权重、黑/白名单的IP地址过滤、限制注册、限制发现等,支持Eureka、Consul、Zookeeper和阿里巴巴的Nacos为服务注册发现中间件,支持阿里巴巴的Nacos、携程的Apollo和Redis为远程配置中心,支持Spring Cloud Gateway(Finchley版)、Zuul网关和微服务的灰度发布,支持多数据源的数据库灰度发布等客户特色化灰度发布,支持用户自定义和编程灰度路由策略(包括RPC和REST两种调用方式),支持运维调度灰度发布和路由的元数据,兼容Spring Cloud Edgware版、Finchley版和Greenwich版。现有的Spring Cloud微服务很方便引入该中间件,代码零侵入 Nepxion Discovery是一款对Spring Cloud Discovery服务注册发现、Ribbon负载均衡、Feign和RestTemplate调用、Hystrix或者阿里巴巴Sentinel熔断隔离限流降级的增强中间件,其功能包括灰度发布(包括切换发布和平滑发布)、服务隔离、服务路由(包括多机房区域路由、多版本路由和多IP和端口路由)、服务权重、黑/白名单的IP地址过滤、限制注册、限制发现等,支持Eureka、Consul、Zookeeper和阿里巴巴的Nacos为服务注册发现中间件,支持阿里巴巴的Nacos、携程的Apollo和Redis为远程配置中心,支持Spring Cloud Gateway、Zuul网关和微服务的灰度发布,支持多数据源的数据库灰度发布等客户特色化灰度发布,支持用户自定义和编程灰度路由策略(包括RPC和REST两种调用方式),支持运维调度灰度发布和路由的元数据,兼容Spring Cloud Edgware版、Finchley版和Greenwich版。现有的Spring Cloud微服务很方便引入该中间件,代码零侵入
:100:鸣谢 :100:鸣谢
- 感谢阿里巴巴中间件Nacos和Sentinel团队,尤其是Nacos负责人@于怀,Sentinel负责人@子衿,Spring Cloud Alibaba负责人@亦盏的技术支持 - 感谢阿里巴巴中间件Nacos和Sentinel团队,尤其是Nacos负责人@于怀,Sentinel负责人@子衿,Spring Cloud Alibaba负责人@亦盏的技术支持
...@@ -109,7 +109,7 @@ Nacos服务注册发现中心 ...@@ -109,7 +109,7 @@ Nacos服务注册发现中心
![Alt text](https://github.com/Nepxion/Docs/blob/master/discovery-doc/Nacos.jpg) ![Alt text](https://github.com/Nepxion/Docs/blob/master/discovery-doc/Nacos.jpg)
Spring Boot Admin监控平台 Spring Boot Admin监控平台
![Alt text](https://github.com/Nepxion/Docs/blob/master/discovery-doc/Admin1.jpg) ![Alt text](https://github.com/Nepxion/Docs/blob/master/discovery-doc/Admin1.jpg)
集成Spring Boot Admin(F版)监控平台,实现通过JMX向Endpoint推送规则和版本,实现灰度发布 集成Spring Boot Admin(F版或以上)监控平台,实现通过JMX向Endpoint推送规则和版本,实现灰度发布
![Alt text](https://github.com/Nepxion/Docs/blob/master/discovery-doc/Admin2.jpg) ![Alt text](https://github.com/Nepxion/Docs/blob/master/discovery-doc/Admin2.jpg)
集成Spring Boot Admin(E版)监控平台,实现通过JMX向Endpoint推送规则和版本,实现灰度发布 集成Spring Boot Admin(E版)监控平台,实现通过JMX向Endpoint推送规则和版本,实现灰度发布
![Alt text](https://github.com/Nepxion/Docs/blob/master/discovery-doc/Admin3.jpg) ![Alt text](https://github.com/Nepxion/Docs/blob/master/discovery-doc/Admin3.jpg)
...@@ -155,7 +155,7 @@ Spring Boot Admin监控平台 ...@@ -155,7 +155,7 @@ Spring Boot Admin监控平台
- 在业务RPC调用上,根据不同的业务参数,例如手机号或者身份证号,后端若干个服务会把请求路由到指定的服务器上 - 在业务RPC调用上,根据不同的业务参数,例如手机号或者身份证号,后端若干个服务会把请求路由到指定的服务器上
## 功能简介 ## 功能简介
- 基于Spring Cloud的微服务和Spring Cloud Gateway(F版)和Zuul网关实现下述功能,它具有几个特性 - 基于Spring Cloud的微服务和Spring Cloud Gateway和Zuul网关实现下述功能,它具有几个特性
- 具有极大的灵活性 - 支持在任何环节(微服务和两个网关),多种方式(REST和RPC)做过滤控制和灰度发布 - 具有极大的灵活性 - 支持在任何环节(微服务和两个网关),多种方式(REST和RPC)做过滤控制和灰度发布
- 具有极小的限制性 - 只要开启了服务注册发现,程序入口加了@EnableDiscoveryClient注解 - 具有极小的限制性 - 只要开启了服务注册发现,程序入口加了@EnableDiscoveryClient注解
- 具有极强的健壮性 - 当远程配置中心全部挂了,可以通过Rest方式进行灰度发布;当远程规则配置不规范,马上切换到本地规则来代替 - 具有极强的健壮性 - 当远程配置中心全部挂了,可以通过Rest方式进行灰度发布;当远程规则配置不规范,马上切换到本地规则来代替
...@@ -194,7 +194,7 @@ Spring Boot Admin监控平台 ...@@ -194,7 +194,7 @@ Spring Boot Admin监控平台
- 实现基于控制平台微服务的图形化的灰度发布功能 - 实现基于控制平台微服务的图形化的灰度发布功能
## 名词解释 ## 名词解释
- E版和F版,即Spring Cloud的Edgware和Finchley的首字母 - E版和F版,即Spring Cloud的Edgware和Finchley的首字母,以此类推
- 切换灰度发布(也叫刚性灰度发布)和平滑灰度发布(也叫柔性灰度发布),切换灰度发布即在灰度发布的时候,没有过渡过程,流量直接从旧版本切换到新版本;平滑灰度发布即在灰度发布的时候,有个过渡过程,可以根据实际情况,先给新版本分配低额流量,给旧版本分配高额流量,对新版本进行监测,如果没有问题,就继续把旧版的流量切换到新版本上 - 切换灰度发布(也叫刚性灰度发布)和平滑灰度发布(也叫柔性灰度发布),切换灰度发布即在灰度发布的时候,没有过渡过程,流量直接从旧版本切换到新版本;平滑灰度发布即在灰度发布的时候,有个过渡过程,可以根据实际情况,先给新版本分配低额流量,给旧版本分配高额流量,对新版本进行监测,如果没有问题,就继续把旧版的流量切换到新版本上
- IP地址,即根据微服务上报的它所在机器的IP地址。本系统内部强制以IP地址上报,禁止HostName上报,杜绝Spring Cloud应用在Docker或者Kubernetes部署时候出现问题 - IP地址,即根据微服务上报的它所在机器的IP地址。本系统内部强制以IP地址上报,禁止HostName上报,杜绝Spring Cloud应用在Docker或者Kubernetes部署时候出现问题
- 规则定义和策略定义,规则定义即通过XML或者Json定义既有格式的规则;策略定义即专指用户自定义和编程灰度路由的策略,属于编程方式的一种扩展 - 规则定义和策略定义,规则定义即通过XML或者Json定义既有格式的规则;策略定义即专指用户自定义和编程灰度路由的策略,属于编程方式的一种扩展
...@@ -205,7 +205,7 @@ Spring Boot Admin监控平台 ...@@ -205,7 +205,7 @@ Spring Boot Admin监控平台
- 事件总线,即基于Google Guava的EventBus构建的组件。通过事件总线可以推送动态版本和动态规则的更新和删除 - 事件总线,即基于Google Guava的EventBus构建的组件。通过事件总线可以推送动态版本和动态规则的更新和删除
- 远程配置中心,即可以存储规则配置XML格式的配置中心,可以包括不限于Nacos,Redis,Apollo,DisConf,Spring Cloud Config - 远程配置中心,即可以存储规则配置XML格式的配置中心,可以包括不限于Nacos,Redis,Apollo,DisConf,Spring Cloud Config
- 配置(Config)和规则(Rule),在本系统中属于同一个概念,例如更新配置,即更新规则;例如远程配置中心存储的配置,即规则XML - 配置(Config)和规则(Rule),在本系统中属于同一个概念,例如更新配置,即更新规则;例如远程配置中心存储的配置,即规则XML
- 服务端口和管理端口,即服务端口指在配置文件的server.port值,管理端口指management.port(E版)值或者management.server.port(F版)值 - 服务端口和管理端口,即服务端口指在配置文件的server.port值,管理端口指management.port(E版)值或者management.server.port(F版或以上)值
## 架构工程 ## 架构工程
### 架构 ### 架构
...@@ -270,7 +270,7 @@ Spring Boot Admin监控平台 ...@@ -270,7 +270,7 @@ Spring Boot Admin监控平台
| discovery-plugin-strategy | 用户自定义和编程灰度路由策略 | | discovery-plugin-strategy | 用户自定义和编程灰度路由策略 |
| discovery-plugin-strategy-starter-service | 用户自定义和编程灰度路由策略的Service Starter | | discovery-plugin-strategy-starter-service | 用户自定义和编程灰度路由策略的Service Starter |
| discovery-plugin-strategy-starter-zuul | 用户自定义和编程灰度路由策略的Zuul Starter | | discovery-plugin-strategy-starter-zuul | 用户自定义和编程灰度路由策略的Zuul Starter |
| discovery-plugin-strategy-starter-gateway | 用户自定义和编程灰度路由策略的Spring Cloud Gateway(F版) Starter | | discovery-plugin-strategy-starter-gateway | 用户自定义和编程灰度路由策略的Spring Cloud Gateway Starter |
| discovery-plugin-strategy-starter-hystrix | 用户自定义和编程灰度路由策略下,Hystrix做线程模式的服务隔离必须引入的插件 Starter | | discovery-plugin-strategy-starter-hystrix | 用户自定义和编程灰度路由策略下,Hystrix做线程模式的服务隔离必须引入的插件 Starter |
| discovery-console | 控制平台,集成接口给UI | | discovery-console | 控制平台,集成接口给UI |
| discovery-console-starter-apollo | 控制平台的Apollo Starter | | discovery-console-starter-apollo | 控制平台的Apollo Starter |
...@@ -282,7 +282,7 @@ Spring Boot Admin监控平台 ...@@ -282,7 +282,7 @@ Spring Boot Admin监控平台
| discovery-springcloud-example-eureka | Eureka服务器示例 | | discovery-springcloud-example-eureka | Eureka服务器示例 |
| discovery-springcloud-example-service | 用于灰度发布的微服务示例 | | discovery-springcloud-example-service | 用于灰度发布的微服务示例 |
| discovery-springcloud-example-zuul | 用于灰度发布的Zuul示例 | | discovery-springcloud-example-zuul | 用于灰度发布的Zuul示例 |
| discovery-springcloud-example-gateway | 用于灰度发布的Spring Cloud Gateway(F版)示例 | | discovery-springcloud-example-gateway | 用于灰度发布的Spring Cloud Gateway示例 |
## 依赖兼容 ## 依赖兼容
### 依赖 ### 依赖
...@@ -298,7 +298,7 @@ Spring Boot Admin监控平台 ...@@ -298,7 +298,7 @@ Spring Boot Admin监控平台
:exclamation:下面标注[必须引入]是一定要引入的包,标注[选择引入]是可以选择一个引入,或者不引入 :exclamation:下面标注[必须引入]是一定要引入的包,标注[选择引入]是可以选择一个引入,或者不引入
核心插件引入,支持微服务端、网关Zuul端和网关Spring Cloud Gateway(F版)端,包括核心灰度发布功能,管理中心,配置中心等 核心插件引入,支持微服务端、网关Zuul端和网关Spring Cloud Gateway端,包括核心灰度发布功能,管理中心,配置中心等
```xml ```xml
[必须引入] 四个服务注册发现的中间件的增强插件,请任选一个引入 [必须引入] 四个服务注册发现的中间件的增强插件,请任选一个引入
<dependency> <dependency>
...@@ -318,7 +318,7 @@ Spring Boot Admin监控平台 ...@@ -318,7 +318,7 @@ Spring Boot Admin监控平台
</dependency> </dependency>
``` ```
扩展功能引入,支持微服务端、网关Zuul端和网关Spring Cloud Gateway(F版)端,包括内置版本路由、区域路由、用户自定义和编程灰度路由 扩展功能引入,支持微服务端、网关Zuul端和网关Spring Cloud Gateway端,包括内置版本路由、区域路由、用户自定义和编程灰度路由
```xml ```xml
微服务端引入 微服务端引入
[选择引入] 用户自定义和编程灰度路由,如需要,请引入 [选择引入] 用户自定义和编程灰度路由,如需要,请引入
...@@ -334,7 +334,7 @@ Spring Boot Admin监控平台 ...@@ -334,7 +334,7 @@ Spring Boot Admin监控平台
<artifactId>discovery-plugin-strategy-starter-zuul</artifactId> <artifactId>discovery-plugin-strategy-starter-zuul</artifactId>
</dependency> </dependency>
网关Spring Cloud Gateway(F版)端引入 网关Spring Cloud Gateway端引入
[选择引入] 用户自定义和编程灰度路由,如需要,请引入 [选择引入] 用户自定义和编程灰度路由,如需要,请引入
<dependency> <dependency>
<groupId>com.nepxion</groupId> <groupId>com.nepxion</groupId>
...@@ -382,7 +382,7 @@ spring.application.discovery.control.enabled=false ...@@ -382,7 +382,7 @@ spring.application.discovery.control.enabled=false
### 兼容 ### 兼容
版本兼容情况 版本兼容情况
- Spring Cloud F版,请采用4.x.x版本,具体代码参考master分支 - Spring Cloud F版或以上,请采用4.x.x版本,具体代码参考master分支
- Spring Cloud E版,请采用3.x.x版本,具体代码参考Edgware分支 - Spring Cloud E版,请采用3.x.x版本,具体代码参考Edgware分支
- 4.x.x版本和3.x.x版本功能完全一致,但在Endpoint的URL使用方式上稍微有个小的区别。例如 - 4.x.x版本和3.x.x版本功能完全一致,但在Endpoint的URL使用方式上稍微有个小的区别。例如
- 3.x.x的Endpoint URL为[http://localhost:5100/config/view](http://localhost:5100/config/view) - 3.x.x的Endpoint URL为[http://localhost:5100/config/view](http://localhost:5100/config/view)
...@@ -392,7 +392,7 @@ spring.application.discovery.control.enabled=false ...@@ -392,7 +392,7 @@ spring.application.discovery.control.enabled=false
- Consul - Consul
- Consul服务器版本不限制,推荐用最新版本,从[https://releases.hashicorp.com/consul/](https://releases.hashicorp.com/consul/)获取 - Consul服务器版本不限制,推荐用最新版本,从[https://releases.hashicorp.com/consul/](https://releases.hashicorp.com/consul/)获取
- Zookeeper - Zookeeper
- Spring Cloud F版,必须采用Zookeeper服务器的3.5.x服务器版本(或者更高),从[http://zookeeper.apache.org/releases.html#download](http://zookeeper.apache.org/releases.html#download)获取 - Spring Cloud F版或以上,必须采用Zookeeper服务器的3.5.x服务器版本(或者更高),从[http://zookeeper.apache.org/releases.html#download](http://zookeeper.apache.org/releases.html#download)获取
- Spring Cloud E版,Zookeeper服务器版本不限制 - Spring Cloud E版,Zookeeper服务器版本不限制
- Eureka - Eureka
- 跟Spring Cloud版本保持一致,自行搭建服务器 - 跟Spring Cloud版本保持一致,自行搭建服务器
...@@ -692,7 +692,7 @@ spring.cloud.nacos.discovery.metadata.region=dev ...@@ -692,7 +692,7 @@ spring.cloud.nacos.discovery.metadata.region=dev
management.security.enabled=false management.security.enabled=false
management.port=5100 management.port=5100
# F版配置方式 # F版或以上配置方式
management.server.port=5100 management.server.port=5100
``` ```
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment