|
| 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