Skip to content

Commit 37bc35f

Browse files
authored
Merge pull request #42 from SpringCloud/A
修改图片,readme
2 parents 629ace8 + 52a8125 commit 37bc35f

File tree

3 files changed

+14
-15
lines changed

3 files changed

+14
-15
lines changed

README.md

Lines changed: 14 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -16,14 +16,14 @@ spring-cloud-gray-webui提供操作界面。
1616
<img src="./doc/discuss-group/C-Group-DingDing.png" width="25%" />
1717

1818
## SpringCloudGray能做什么
19-
1. 实现金丝雀测试
19+
1. 金丝雀测试
2020

2121
先发布1台实例,用于测试验证,指定测试的流量进入这台实例,其它流量依然进入其它正常的实例。优势在于发布成本小,快速测试,并且不影响正常用户体验影响,即使测试不通过,也只需回滚这一台实例,用户无感知。
2222
![](doc/img/canary-test.png)
2323

24-
2. 实现灰度放量
24+
2. 灰度放量
2525

26-
通过金丝雀测试后,可以逐渐放量到新的版本上。例如,根据userId或者ip放5%的流量到其中一台灰度实例上,观察一天没异常,可调整放入20%的流量,如果一台实例扛不住,可再发一台或多台实例。将发布产生的风险保持在可控范围内。
26+
通过金丝雀测试后,可以逐渐放量到新的版本上。例如,根据userId或者ip放5%的流量到其中一台灰度实例上,观察一段时间没异常,可调整放入20%的流量,如果一台实例扛不住,可再发一台或多台实例。将发布产生的风险保持在可控范围内。
2727
![](doc/img/gray-Inflow-rate.png)
2828

2929
3. 切断实例流量
@@ -33,11 +33,11 @@ spring-cloud-gray-webui提供操作界面。
3333

3434
4. 数据透传
3535

36-
借助灰度追踪的能力,在网关处记录用户请求的最初的数据,可以将之透到整个请求的调用链
36+
借助灰度追踪的能力,在网关处记录用户请求的最初的数据,可以将之透传到请求完整的调用链中
3737

3838
5. 借助“破窗”能力,实例蓝绿发布
3939

40-
首次上灰度时,会存在两种环境,一种是已经依赖了灰度客户端的环境,另一种是已经稳定运行的一段时间的当前环境。假如微服务的负载均衡是由ribbon实现,那么当前环境会请求路由到实例状态为UP的实例上,而依赖了灰度客户端的环境,则可以通过"破窗"能力,跟灰度路由结合,可以将匹配灰度策略的请求路由到实例状态为STARTING的实例上,不匹配灰度策略的请求路由到实例状态为UP的实例上。
40+
首次上灰度时,会存在两种环境,一种是已经依赖了灰度客户端的环境,另一种是正常运行的当前环境。假如微服务的负载均衡是由ribbon实现,那么当前环境会请求路由到实例状态为UP的实例上,而依赖了灰度客户端的环境,则可以通过"破窗"能力,跟灰度路由结合,可以将匹配灰度策略的请求路由到实例状态为STARTING的实例上,不匹配灰度策略的请求路由到实例状态为UP的实例上。
4141
![](doc/img/breakwindow1.png)
4242

4343

@@ -75,9 +75,8 @@ C.0.0.1-SNAPHOST | Greenwich.SR2 | 2.1.7.RELEASE
7575
灰度的客户端是指依赖了spring-cloud-gray-client的服务,一般是指服务消费方。
7676

7777
**灰度管控端**
78-
负责灰度信息的管理、持久化等维护工作。
79-
80-
灰度客户端会从灰度管控端拉取一份灰度信息的清单,并在内存中维护这份清单信息,清单中包含服务,服务实例,灰度策略,灰度追踪字段等。
78+
负责灰度信息的管理、持久化等维护工作。<br/>
79+
灰度客户端会从灰度管控端拉取一份灰度信息的清单,并在内存中维护这份清单信息,清单中包含服务,服务实例,灰度策略,灰度追踪字段等。<br/>
8180
当请求达到网关时,网关就会在灰度追踪中将需要透传的信息记录下来,并将传递给转发的服务实例,后面的接口调用也会按照同样的逻辑将追踪信息透传下去,从而保证所有一个请求在微服务调用链中的灰度路由。<br/>
8281
如下图所示:
8382

@@ -93,7 +92,7 @@ C.0.0.1-SNAPHOST | Greenwich.SR2 | 2.1.7.RELEASE
9392
![](doc/img/springcloud-gray-service.png)
9493
3. 权限控制
9594

96-
灰度的权限控制是以服务为对象的,拥有服务的权限,就可以操作服务的所有灰度信息。在服务的权限控制中,分为两种角色,owner和管理者,owner拥有最大的权限,管理者除了不能删除owner的权限,其它权限同owner一样。
95+
灰度的权限控制是以服务为对象的,拥有服务的权限,就可以操作服务的所有灰度信息。在服务的权限控制中,分为两种角色,owner和管理者,owner拥有最大的权限,管理者除了不能删除owner的权限,其它权限同owner一样。
9796
![owner list](doc/img/springcloud-gray-service-owner.png)
9897
![authrity list](doc/img/springcloud-gray-service-authority.png)
9998
4. 灰度实例管理
@@ -108,11 +107,11 @@ C.0.0.1-SNAPHOST | Greenwich.SR2 | 2.1.7.RELEASE
108107
6. 编辑灰度策略
109108

110109
从实例列表点击【策略】按钮进入灰度策略列表,可在策略列表中添加灰度策略和灰度决策。
111-
112-
实例的灰度策略,包含可多个灰度决策。

113-
策略是从灰度实例列表进入。 一个实例可以有多个灰度策略,策略与策略之间是"或"的关系。就是说,一个请求只要 满足实例的任间一个灰度略,即表明请求被路由到该实例上
114-
115-
决策是灰度中进行比对的最小项。它定义一种规则,对请求进行比对,返回 true/false。 当请求到来时,灰度调用端可以根据灰度实例的灰度决策,进行对比,以判断灰度实例是否可以受理该请求。 多个决策是"与"的关系。
110+
111+
实例的灰度策略,包含可多个灰度决策。

112+
策略是从灰度实例列表进入。一个实例可以有多个灰度策略,策略与策略之间是"或"的关系。就是说,一个请求只要 满足实例的任意一个灰度策略,这个请求被路由到该实例上
113+
114+
决策是灰度中进行比对的最小项。它定义一种规则,对请求进行比对,返回 true/false。当请求调用时,灰度调用端可以根据灰度实例的灰度决策,进行对比,以判断灰度实例是否可以受理该请求。多个决策是"与"的关系。
116115
![灰度策略](doc/img/springcloud-gray-policy.png)
117116
![灰度决策](doc/img/springcloud-gray-decision.png)
118117

@@ -299,6 +298,6 @@ public class UserIdGrayInfoTracker implements HttpGrayInfoTracker {
299298
```
300299

301300
## 项目扩展
302-
项目已经实现了灰度的内核,如果要与其它的注册中心或者负载均衡中间件集成,只需实现相应的plugin即可,spring cloud gray已经提供了eureka、ribbon、feign、zuul以及spring cloud gateway和spring cloud stream的plugin,只需添加相应的plugin依赖即可
301+
项目已经实现了灰度的内核,如果要与其它的注册中心或者负载均衡中间件集成,只需实现相应的plugin即可,spring cloud gray已经提供了eureka、ribbon、feign、zuul以及spring cloud gateway和spring cloud stream的plugin,添加相应的plugin依赖即可
303302

304303

doc/img/gray-Inflow-rate.png

-2.99 KB
Loading

doc/img/gray.png

-8.62 KB
Loading

0 commit comments

Comments
 (0)