Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
D
discovery
Overview
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
谢捷峰
discovery
Commits
9ed46fe0
Commit
9ed46fe0
authored
Aug 17, 2018
by
Nepxion
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
修改介绍
parent
5a5faf40
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
17 additions
and
12 deletions
+17
-12
README.md
+17
-12
No files found.
README.md
View file @
9ed46fe0
...
...
@@ -494,21 +494,26 @@ XML示例(也可以通过Json来描述,这里不做描述,见discovery-spr
-
多版本灰度获取版本值的时候,先获取动态版本,如果不存在,再获取本地版本
-
版本不会持久化到远程配置中心,一旦微服务死掉后,再次启动,拿到的还是本地版本,所以动态改变版本策略属于临时灰度发布手段
### 用户自定义和编程灰度路由策略
使用者可以实现跟业务有关的路由策略,根据业务参数的不同,负载均衡到不同的服务器
从维度上来看
-
基于服务的编程灰度路由,实现DiscoveryEnabledExtension,通过RequestContextHolder(获取来自网关的Header参数)和ServiceStrategyContext(获取来自RPC方式的方法参数)获取业务上下文参数,进行路由自定义
-
基于Zuul的编程灰度路由,实现DiscoveryEnabledExtension,通过Zuul自带的RequestContext(获取来自网关的Header参数)获取业务上下文参数,进行路由自定义
-
基于Spring Cloud Api Gateway的编程灰度路由,实现DiscoveryEnabledExtension,通过GatewayStrategyContext(获取来自网关的Header参数)获取业务上下文参数,进行路由自定义
从功能上来看
-
REST调用的多版本灰度路由,在Header上传入服务名和版本对应关系的Json字符串,如下表示,如果REST请求要经过a,b,c三个服务,那么只有a服务的1.0版本,b服务的1.1版本,c服务的1.1或1.2版本,允许被调用到
## 策略定义
用户自定义和编程灰度路由策略。使用者可以实现跟业务有关的路由策略,根据业务参数的不同,负载均衡到不同的服务器
### 端到端策略
#### 服务端的编程灰度路由策略
基于服务端的编程灰度路由,实现DiscoveryEnabledExtension,通过RequestContextHolder(获取来自网关的Header参数)和ServiceStrategyContext(获取来自RPC方式的方法参数)获取业务上下文参数,进行路由自定义
#### Zuul端的编程灰度路由策略
基于Zuul端的编程灰度路由,实现DiscoveryEnabledExtension,通过Zuul自带的RequestContext(获取来自网关的Header参数)获取业务上下文参数,进行路由自定义
#### Gateway端的编程灰度路由策略
基于Spring Cloud Api Gateway端的编程灰度路由,实现DiscoveryEnabledExtension,通过GatewayStrategyContext(获取来自网关的Header参数)获取业务上下文参数,进行路由自定义
### 调用方式策略
#### REST调用的内置多版本灰度路由策略
基于FEIGN REST调用的多版本灰度路由,在Header上传入服务名和版本对应关系的Json字符串,如下表示,如果REST请求要经过a,b,c三个服务,那么只有a服务的1.0版本,b服务的1.1版本,c服务的1.1或1.2版本,允许被调用到
```
xml
{"discovery-springcloud-example-a":"1.0", "discovery-springcloud-example-b":"1.1", "discovery-springcloud-example-c":"1.1;1.2"}
```
-
REST调用的自定义路由,见
[
示例演示
](
https://github.com/Nepxion/Docs/blob/master/discovery-plugin-doc/README_EXAMPLE.md
)
的“用户自定义和编程灰度路由的操作演示”
-
RPC调用的自定义路由,见
[
示例演示
](
https://github.com/Nepxion/Docs/blob/master/discovery-plugin-doc/README_EXAMPLE.md
)
的“用户自定义和编程灰度路由的操作演示”
#### REST调用的编程路由策略
基于FEIGN REST调用的自定义路由,见
[
示例演示
](
https://github.com/Nepxion/Docs/blob/master/discovery-plugin-doc/README_EXAMPLE.md
)
的“用户自定义和编程灰度路由的操作演示”
#### RPC调用的编程路由策略
基于FEIGN RPC调用的自定义路由,见
[
示例演示
](
https://github.com/Nepxion/Docs/blob/master/discovery-plugin-doc/README_EXAMPLE.md
)
的“用户自定义和编程灰度路由的操作演示”
### 用户自定义监听
使用者可以继承如下类
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment