Commit 728d8b9d by Nepxion

修改介绍

parent 0f8aaa09
...@@ -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调用的增强中间件,其功能包括灰度发布(包括切换发布和平滑发布)、服务隔离、服务路由、服务权重、黑/白名单的IP地址过滤、限制注册、限制发现等,支持Eureka、Consul、Zookeeper和阿里巴巴的Nacos为服务注册发现中间件,支持阿里巴巴的Nacos、携程的Apollo和Redis为远程配置中心,支持Spring Cloud Gateway(Finchley版)、Zuul网关和微服务的灰度发布,支持多数据源的数据库灰度发布等客户特色化灰度发布,支持用户自定义和编程灰度路由策略(包括RPC和REST两种调用方式),兼容Spring Cloud Edgware版和Finchley版(不支持Dalston版,因为它的生命周期将在2018年12月结束,如果您无法回避使用Dalston版,请自行修改源码或者联系我)。现有的Spring Cloud微服务很方便引入该中间件,代码零侵入 Nepxion Discovery是一款对Spring Cloud Discovery服务注册发现、Ribbon负载均衡、Feign和RestTemplate调用、Hystrix熔断隔离的增强中间件,其功能包括灰度发布(包括切换发布和平滑发布)、服务隔离、服务路由、服务权重、黑/白名单的IP地址过滤、限制注册、限制发现等,支持Eureka、Consul、Zookeeper和阿里巴巴的Nacos为服务注册发现中间件,支持阿里巴巴的Nacos、携程的Apollo和Redis为远程配置中心,支持Spring Cloud Gateway(Finchley版)、Zuul网关和微服务的灰度发布,支持多数据源的数据库灰度发布等客户特色化灰度发布,支持用户自定义和编程灰度路由策略(包括RPC和REST两种调用方式),兼容Spring Cloud Edgware版和Finchley版(不支持Dalston版,因为它的生命周期将在2018年12月结束,如果您无法回避使用Dalston版,请自行修改源码或者联系我)。现有的Spring Cloud微服务很方便引入该中间件,代码零侵入
对于使用者来说,他所需要做的如下: 对于使用者来说,他所需要做的如下:
- 引入相关依赖到pom.xml,参考 [依赖兼容](#依赖兼容) - 引入相关依赖到pom.xml,参考 [依赖兼容](#依赖兼容)
...@@ -258,6 +258,7 @@ Spring Boot Admin监控平台 ...@@ -258,6 +258,7 @@ Spring Boot Admin监控平台
| 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(F版) 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 |
| discovery-console-starter-nacos | 控制平台的Nacos Starter | | discovery-console-starter-nacos | 控制平台的Nacos Starter |
...@@ -334,6 +335,13 @@ Spring Boot Admin监控平台 ...@@ -334,6 +335,13 @@ Spring Boot Admin监控平台
</dependency> </dependency>
``` ```
[选择引入] 用户自定义和编程灰度路由时候,Hystrix做线程模式的服务隔离必须引入的插件,信号量模式不需要引入
<dependency>
<groupId>com.nepxion</groupId>
<artifactId>discovery-plugin-strategy-starter-hystrix</artifactId>
</dependency>
```
控制平台引入 控制平台引入
```xml ```xml
[选择引入] 三个远程配置中心的中间件的扩展插件,如需要,请任选一个引入,或者也可以引入您自己的扩展 [选择引入] 三个远程配置中心的中间件的扩展插件,如需要,请任选一个引入,或者也可以引入您自己的扩展
...@@ -673,6 +681,10 @@ management.server.port=5100 ...@@ -673,6 +681,10 @@ management.server.port=5100
spring.application.strategy.scan.packages=com.nepxion.discovery.plugin.example.service.feign spring.application.strategy.scan.packages=com.nepxion.discovery.plugin.example.service.feign
# 用户自定义和编程灰度路由策略的时候,对REST调用拦截的时候(支持Feign或者RestTemplate调用),需要把来自外部的指定Header参数传递到服务里,如果多个用“;”分隔,不允许出现空格。该项配置只对服务有效,对网关无效。缺失则默认关闭该功能 # 用户自定义和编程灰度路由策略的时候,对REST调用拦截的时候(支持Feign或者RestTemplate调用),需要把来自外部的指定Header参数传递到服务里,如果多个用“;”分隔,不允许出现空格。该项配置只对服务有效,对网关无效。缺失则默认关闭该功能
spring.application.strategy.request.headers=version;region;token spring.application.strategy.request.headers=version;region;token
# spring.application.strategy.zone.avoidance.rule.enabled=true
# 开启Zuul网关上实现Hystrix线程隔离模式做服务隔离时,必须把spring.application.strategy.hystrix.threadlocal.supported设置为true,同时要引入discovery-plugin-strategy-starter-hystrix包,否则线程切换时会发生ThreadLocal上下文对象丢失
# zuul.ribbon-isolation-strategy=thread
# spring.application.strategy.hystrix.threadlocal.supported=true
``` ```
## 监听扩展 ## 监听扩展
......
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