File tree Expand file tree Collapse file tree 1 file changed +5
-0
lines changed Expand file tree Collapse file tree 1 file changed +5
-0
lines changed Original file line number Diff line number Diff line change 15
15
16
16
* 灰度实例
17
17
![ 灰度实例] ( ../doc/img/u-case-service-instance.png )
18
+
18
19
实例注册:服务实例添加到灰度管理中。
19
20
实例下线:服务实例下线,从灰度管理中删除。
20
21
灰度开关:调整服务实例的灰度状态,有启用、禁用两个状态,禁用的实例不纳入灰度列表中。
23
24
* 调用请求
24
25
25
26
![ 调用请求] ( ../doc/img/u-case-call-request.png )
27
+
26
28
灰度决策:根据请求的信息去匹配灰度服务实例的灰度策略,如果匹配上,会将服务实例加入到通过列表中。如果都没有匹配上,就按bamboo的路由规则去筛选非灰度的服务实例进行转发。
27
29
28
30
29
31
* 灰度客户端
30
32
31
33
调用请求的服务消费者,和提供服务的服务提供者都可以是灰度客户端,因为微服务中,大多服务实例既是服务提供者,同时也是服务消费者。
32
34
![ 灰度客户端] ( ../doc/img/u-case-gray-client.png )
35
+
33
36
灰度服务注册:服务实例在启动时,就会向灰度服务端发起请求,将实例自身的灰度开关打开。
34
37
灰度服务下线:在服务实例下线前,会触发钩子,向灰度服务端发起请求将实例自身从灰度列表中删除。
35
38
接收灰度实例调整消息:接收由灰度服务端推送过来的灰度列表更新消息比如新增灰度实例,删除灰度实例等,维护缓存在实例上的灰度列表。
39
42
40
43
灰度服务端负表维护灰度列表,可以新增、删除、编辑灰度信息。
41
44
![ 灰度服务端] ( ../doc/img/u-case-gray-server.png )
45
+
42
46
编辑灰度实例:新增灰度实例,删除灰度实例,修改实例灰度状态。
43
47
编辑灰度策略:新增实例灰度策略,删除实例灰度策略,修改灰度策略状态。
44
48
推送灰度服务调整消息:向灰度客户端推送灰度列表变动消息,比如新增灰度实例,删除灰度实例,修改实例灰度状态等。
49
53
##### 代码设计
50
54
根据上面的思路,设计以下对象和接口。共6个接口,4个模型对象。
51
55
![ 灰度代码设计] ( ../doc/img/cd-gray.png )
56
+
52
57
对象:
53
58
* GrayService: 灰度服务
54
59
* GrayInstance: 灰度实例,有状态属性
You can’t perform that action at this time.
0 commit comments