Skip to content

Commit 3ae2836

Browse files
authored
Merge pull request #36 from SpringCloud/A
A
2 parents a827465 + 20dfd3b commit 3ae2836

File tree

2 files changed

+194
-1
lines changed

2 files changed

+194
-1
lines changed

README.md

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,10 +20,12 @@ spring-cloud-gray-webui提供操作界面。
2020

2121
在管控端数据库执行一条insert语名:
2222
```sql
23-
insert into `user` ( `user_id`, `account`, `name`, `password`, `roles`, `status`, `create_time`, `operater`, `update_time`, `operator`, `operate_time`) values ( 'admin', 'admin', 'Admin', 'e7a57e51394e91cba19deca3337bfab0', 'admin', '1', null, null, null, 'admin', '2019-08-09 00:11:12');
23+
insert into `user` ( `user_id`, `account`, `name`, `password`, `roles`, `status`, `create_time`, `operator`, `operate_time`) values ( 'admin', 'admin', 'Admin', 'e7a57e51394e91cba19deca3337bfab0', 'admin', '1', now(), 'admin', now());
2424
```
2525
这是添加管理员账号的,用户名:`admin` 密码:`abc123`
2626

27+
## 使用手册
28+
[管控端界面使用手册](doc/guide/gray-admin-guide.md)
2729

2830
## 版本信息
2931
项目版本 | srpingcloud版本 | springboot版本

doc/guide/gray-admin-guide.md

Lines changed: 191 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,191 @@
1+
# 管控端界面使用手册
2+
## 设置实例的灰度策略
3+
### 场景
4+
设置service-a的ip为192.168.0.10的实例为灰度实例,并设置灰度策略version = 2.1.0
5+
6+
### 效果
7+
url参数version 等于2.1.0的请求,都将被转到192.168.0.10这台实例上。
8+
9+
### 操作
10+
#### 第一步-添加灰度实例
11+
添加灰度实例,在服务列表,点击service-a那一行的**<font color=blue>在线实例</font>**按钮,打开service-a的在线实例列表,选中ip为192.168.0.10的那台实例,然后点击**<font color=blue>Add</font>**按钮,把实例添加为灰度实例。
12+
13+
#### 第二步-设置灰度追踪
14+
设置灰度追踪的目的是为了将用户请求的最初的信息透传到服务链,比如version参数能够从网关一直透传到后面的服务中。
15+
16+
操作步骤: 服务列表 -> <font color=blue>追踪</font>按钮(从网关服务进) -> 灰度追踪列表
17+
点击左上角的**<font color=blue>Add</font>**按钮,弹出添加面板,输入追踪类型(Name)和追踪字段(Infos)。
18+
19+
Name: HttpParameter
20+
Infos: version
21+
22+
<font color=red>Infos 可以追踪多个字段,多个字段用逗号(,)分隔</font>
23+
24+
**更多的灰度追踪配置可以查看后面的<font color=red>灰度追踪格式</font>**
25+
26+
27+
#### 第三步-设置灰度策略
28+
设置灰度策略,需要添加灰度策略以及灰度决策。进入灰度策略列表的操作步骤:服务列表 -> <font color=blue>实例</font>按钮 -> 灰度实例列表 -> <font color=blue>策略</font>按钮 -> 灰度策略列表。
29+
30+
点击左上角的**<font color=blue>Add</font>**按钮,弹出添加面板,输入策略标识(Alias),这个字估由用户自定义。
31+
32+
33+
然后再为这个策略添加灰度决策,步骤是: 灰度策略列表 -> <font color=blue>决策</font>按钮 -> 灰度决策列表
34+
35+
同样是点击左上角的**<font color=blue>Add</font>**按钮,弹出添加面板,输入灰度决策名称(Name),和灰度决策条件(Infos);
36+
37+
**如设置version 等于2.1.0的请求,都将被转到这台实例上**
38+
Name: HttpTrackParameter
39+
Infos: {"name":"version","compareMode":"EQUAL","values":"2.1.0"}
40+
41+
**更多的灰度决策配置可以查看后面的<font color=red>灰度决策格式</font>**
42+
43+
44+
45+
46+
47+
48+
## 修改实例的灰度状态
49+
**操作步骤**
50+
服务列表 -> <font color=blue>实例</font>按钮 -> 灰度实例列表 -> <font color=blue>Edit</font>按钮
51+
以上操作是打开灰度实例的信息面板,修改`Gray Status`字段,该字段有两个选项:OPEN, CLOSE,分别对应打开和关闭,修改完成后,点击保存即可。
52+
53+
**灰度状态的作用**
54+
灰度状态是用来控制实例是被灰度,当灰度状态打开时,只有匹配该实例的任意灰度策略的请求,才会被转到到该实例上。
55+
56+
57+
## 灰度锁定
58+
**操作步骤**
59+
服务列表 -> <font color=blue>实例</font>按钮 -> 灰度实例列表 -> <font color=blue>Edit</font>按钮
60+
以上操作是打开灰度实例的信息面板,修改`Gray Lock`字段,该字段有两个选项:LOCK, UNLOCK,分别对应锁定和非锁定,修改完成后,点击保存即可。
61+
62+
**灰度锁定的作用**
63+
灰度锁定是为了当灰度状态为打开时,即使实例的状态为DOWN(非正常状态)了,其它的灰度客户端也能从管控端获取到该实例的灰度信息。
64+
这样在发布过程,发布实例的灰度信息不会因为实例状态的变动而导致其它灰度客户端获取不到该发布实例的灰度信息,造成正常请求被转发到该发布实例上。
65+
66+
67+
68+
## 灰度决策的格式
69+
### 在度决策
70+
* HttpHeaderGrayDecisionFactory
71+
**Name:** HttpHeader
72+
**Infos:**
73+
``` json
74+
{"compareMode":"EQUAL","header":"headerName","values":"headerValue"}
75+
```
76+
77+
**Class:** cn.springcloud.gray.decision.factory.HttpHeaderGrayDecisionFactory
78+
**Describe:** 根据http请求头的字段进行判断
79+
80+
---
81+
82+
* HttpMethodGrayDecisionFactory
83+
**Name:** HttpMethod
84+
**Infos:**
85+
``` json
86+
{"compareMode":"EQUAL","method":"POST"}
87+
```
88+
89+
**Class:** cn.springcloud.gray.decision.factory.HttpMethodGrayDecisionFactory
90+
**Describe:** 根据http请求方法的字段进行判断
91+
92+
---
93+
94+
* HttpParameterGrayDecisionFactory
95+
**Name:** HttpParameter
96+
**Infos:**
97+
``` json
98+
{"compareMode":"EQUAL","name":"paramName","values":"paramValue"}
99+
```
100+
101+
**Class:** cn.springcloud.gray.decision.factory.HttpParameterGrayDecisionFactory
102+
**Describe:** 比对http url参数
103+
104+
---
105+
106+
* HttpTrackHeaderGrayDecisionFactory
107+
**Name:** HttpTrackHeader
108+
**Infos:**
109+
``` json
110+
{"compareMode":"EQUAL","header":"headerName","values":"headerValue"}
111+
```
112+
113+
**Class:** cn.springcloud.gray.decision.factory.HttpTrackHeaderGrayDecisionFactory
114+
**Describe:** 根据灰度追踪记录的http请求头的字段进行判断
115+
116+
---
117+
118+
* HttpTrackParameterGrayDecisionFactory
119+
**Name:** HttpTrackParameter
120+
**Infos:**
121+
``` json
122+
{"compareMode":"EQUAL","name":"paramName","values":"paramValue"}
123+
```
124+
**Class:** cn.springcloud.gray.decision.factory.HttpTrackParameterGrayDecisionFactory
125+
**Describe:** 根据灰度追踪记录的http url参数进行判断
126+
127+
---
128+
129+
* TraceIpGrayDecisionFactory
130+
**Name:** TraceIp
131+
**Infos:**
132+
``` json
133+
{"ip":"192\.168\.0\.*"}
134+
```
135+
**Class:** cn.springcloud.gray.decision.factory.TraceIpGrayDecisionFactory
136+
**Describe:** 根据灰度追踪记录的请求ip进行判断, ip可以是正常表达式
137+
138+
---
139+
140+
* TrackAttributeGrayDecisionFactory
141+
**Name:** TrackAttribute
142+
**Infos:**
143+
``` json
144+
{"compareMode":"EQUAL","name":"attributeName","values":"attributeValue"}
145+
```
146+
**Class:** cn.springcloud.gray.decision.factory.TrackAttributeGrayDecisionFactory
147+
**Describe:** 根据灰度追踪记录的属性值进行判断
148+
149+
---
150+
151+
* FlowRateGrayDecisionFactory
152+
**Name:** FlowRate
153+
**Infos:**
154+
``` json
155+
{"type":"TrackAttribute","field":"userid","salt":"","rate":"10"}
156+
```
157+
**Class:** cn.springcloud.gray.decision.factory.FlowRateGrayDecisionFactory
158+
**Describe:** 指定字段按百分比放量进行判断
159+
160+
161+
162+
### CompareMode
163+
比较模式,共有6种
164+
165+
Mode | Support | Describe
166+
--- | --- | ---
167+
GT | String | 大于
168+
GTE | String | 大于等于
169+
LT | String | 小于
170+
LTE | String | 小于等于
171+
EQUAL | String, List | 一致
172+
UNEQUAL | String, List | 不一致
173+
CONTAINS_ALL | List | 配置中的值包含请求中的所有值
174+
CONTAINS_ANY | List | 配置中的值至少包含请求值中的一个
175+
NOT_CONTAINS_ANY | List | 配置中的值没有包含请求值中的任何一个
176+
NOT_CONTAINS_ALL | List | 配置中的值全部不包含请求值,与NOT_CONTAINS_ANY相同
177+
178+
179+
180+
181+
## 灰度追踪的格式
182+
名称 | 描述
183+
--- | ---
184+
HttpReceive | 接收调用端传递过来的灰追踪信息(必须)
185+
HttpHeader | 获取http请求的header并记录到灰度追踪的Header中
186+
HttpIP | 获取http请求的ip并记录到灰度追踪中
187+
HttpMethod | 获取http请求的请求方法并记录到灰度追踪中
188+
HttpParameter | 获取http请求的url参数并记录到灰度追踪的parameter中
189+
HttpURI | 获取http请求的URI并记录到灰度追踪中
190+
191+

0 commit comments

Comments
 (0)