File tree Expand file tree Collapse file tree 2 files changed +6
-7
lines changed
spring-cloud-gray-samples Expand file tree Collapse file tree 2 files changed +6
-7
lines changed Original file line number Diff line number Diff line change 1414从上面的场景分析,可以归纳出两个对象:服务实例和调用请求;服务实例的灰度管理是基础,调用请求时如何决策路由,都是根据服务实例的灰度策略去判断的。既然有灰度管理这个概念,那么从功能上分,就会有client-server之分,所以又可以从gray-client和gray-server去分析。接下来将一步一步去分析这四个方面。
1515
1616* 灰度实例
17-
18- [ 灰度实例] ( ../doc/img/u-case-service-instance.png )
17+ ![ 灰度实例] ( ../doc/img/u-case-service-instance.png )
1918实例注册:服务实例添加到灰度管理中。
2019实例下线:服务实例下线,从灰度管理中删除。
2120灰度开关:调整服务实例的灰度状态,有启用、禁用两个状态,禁用的实例不纳入灰度列表中。
2221灰度策略:请求是否可以被转发到该服务实例的条件,只有通过,请求才有可能会被转发到该实例上。
2322
2423* 调用请求
2524
26- [ 调用请求] ( ../doc/img/u-case-call-request.png )
25+ ! [ 调用请求] ( ../doc/img/u-case-call-request.png )
2726灰度决策:根据请求的信息去匹配灰度服务实例的灰度策略,如果匹配上,会将服务实例加入到通过列表中。如果都没有匹配上,就按bamboo的路由规则去筛选非灰度的服务实例进行转发。
2827
2928
3029* 灰度客户端
3130
3231调用请求的服务消费者,和提供服务的服务提供者都可以是灰度客户端,因为微服务中,大多服务实例既是服务提供者,同时也是服务消费者。
33- [ 灰度客户端] ( ../doc/img/u-case-gray-client.png )
32+ ! [ 灰度客户端] ( ../doc/img/u-case-gray-client.png )
3433灰度服务注册:服务实例在启动时,就会向灰度服务端发起请求,将实例自身的灰度开关打开。
3534灰度服务下线:在服务实例下线前,会触发钩子,向灰度服务端发起请求将实例自身从灰度列表中删除。
3635接收灰度实例调整消息:接收由灰度服务端推送过来的灰度列表更新消息比如新增灰度实例,删除灰度实例等,维护缓存在实例上的灰度列表。
3938* 灰度服务端
4039
4140灰度服务端负表维护灰度列表,可以新增、删除、编辑灰度信息。
42- [ 灰度服务端] ( ../doc/img/u-case-gray-server.png )
41+ ! [ 灰度服务端] ( ../doc/img/u-case-gray-server.png )
4342编辑灰度实例:新增灰度实例,删除灰度实例,修改实例灰度状态。
4443编辑灰度策略:新增实例灰度策略,删除实例灰度策略,修改灰度策略状态。
4544推送灰度服务调整消息:向灰度客户端推送灰度列表变动消息,比如新增灰度实例,删除灰度实例,修改实例灰度状态等。
4948
5049##### 代码设计
5150根据上面的思路,设计以下对象和接口。共6个接口,4个模型对象。
52- [ 灰度代码设计] ( ../doc/img/cd-gray.png )
51+ ! [ 灰度代码设计] ( ../doc/img/cd-gray.png )
5352对象:
5453* GrayService: 灰度服务
5554* GrayInstance: 灰度实例,有状态属性
Original file line number Diff line number Diff line change @@ -57,7 +57,7 @@ public class GrayServerApplication {
5757```
5858
5959启动后,可以访问http://localhost:20202/swagger-ui.html查看接口列表,也可以调用其中的接口。
60- [ 灰度服务端swagger api list] ( ../doc/img/web-api-gray-server.png )
60+ ! [ 灰度服务端swagger api list] ( ../doc/img/web-api-gray-server.png )
6161
6262以上介绍完了gray-server的配置,下面再看gray-client的配置。
6363
You can’t perform that action at this time.
0 commit comments