You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@servicecomb.apache.org by li...@apache.org on 2021/03/09 06:57:12 UTC
[servicecomb-docs] 01/02: [SCB-2212]improve documents for gray
release
This is an automated email from the ASF dual-hosted git repository.
liubao pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/servicecomb-docs.git
commit 1bf73fca0c48393f81ee2af17ed144347847f31f
Author: libuao68 <bi...@qq.com>
AuthorDate: Tue Mar 9 11:03:32 2021 +0800
[SCB-2212]improve documents for gray release
---
.../zh_CN/docs/references-handlers/router.md | 27 +++++++++++++---------
java-chassis-reference/zh_CN/docs/toc.md | 2 +-
java-chassis-reference/zh_CN/mkdocs.yml | 2 +-
3 files changed, 18 insertions(+), 13 deletions(-)
diff --git a/java-chassis-reference/zh_CN/docs/references-handlers/router.md b/java-chassis-reference/zh_CN/docs/references-handlers/router.md
index 943f8ee..ccb9b1c 100644
--- a/java-chassis-reference/zh_CN/docs/references-handlers/router.md
+++ b/java-chassis-reference/zh_CN/docs/references-handlers/router.md
@@ -1,8 +1,12 @@
-# 路由管理
+# 灰度发布
-应用可以通过使用路由管理,来进行灰度发布实现版本的平滑过渡升级。路由管理通过动态配置下发完成。
+使用灰度发布可以实现版本的零中断升级。假设微服务A当前是v1版本,v1版本存在一个实例,现在需要升级到到v2版本。首先配置一个灰度
+发布规则,将100%的流量指向v1版本;配置规则生效后,部署v2版本;v2版本启动完毕,配置10%的流量到v2版本;当v2版本
+运行稳定,配置100%的流量到v2版本;停止v1版本的实例。
-使用路由管理,需要在项目中引入如下依赖:
+* 前提条件:灰度发布依赖负载均衡管理模块, 参考[负载均衡](./loadbalance.md) 。
+
+使用灰度发布,需要在项目中引入如下依赖:
```xml
<dependency>
@@ -13,14 +17,17 @@
在配置文件中增加配置项:
-前提条件:配置servicecomb.handler.chain.Consumer.default,在处理链Consumer中配置loadbalance,[loadbalance处理链介绍](./loadbalance.md)。
-
| 配置项名 | 描述 |
| ------------------------------------------ | ---------------------- |
| servicecomb.routeRule.[targetService] | 目标服务的路由管理规则 |
| servicecomb.router.type | 填写'router' |
+| servicecomb.router.header | 从HTTP请求头中提取额外的可以用于匹配HTTP Header信息。 以逗号分隔的多个 Header 名称。|
+
+* 说明:路由规则里面的 headers 来源分为如下几部分:(1)servicecomb.router.header 配置的 Header 信息;(2)Invocation Arguments,即
+ 业务接口的参数列表。关于Invocation Arguments和Swagger Arguments的差异,请参考 Invocation 类。 Invocation Arguments的优先级
+ 高于 servicecomb.router.header。
-路由管理规则实例如下:
+灰度发布规则示例如下:
```yaml
servicecomb:
@@ -62,14 +69,12 @@ servicecomb:
#### 匹配流程
-对于上面的示例配置,所有访问provider服务的请求,首先尝试与优先级为2的第一个的match规则进行匹配header:header存在key为region的按照正则规则区分大小写匹配,存在key为type的进行字符串精准匹配。若匹配match成功则按照route的配置分配100%的流量到version和tags对应的实例。若匹配match失败则进入下个优先级为1的规则。不同规则优先级不能相等。
+对于上面的示例配置,所有访问provider服务的请求,首先尝试与优先级为2的第一个的match规则进行匹配
+header:header存在key为region的按照正则规则区分大小写匹配,存在key为type的进行字符串精准匹配。若匹配
+match成功则按照route的配置分配100%的流量到version和tags对应的实例。若匹配match失败则进入下个优先级为1的规则。不同规则优先级不能相等。
#### 异常情况的处理
如果因为规则配置错误,或者没有match到任何一条规则,流量会直接跳过灰度规则,相当于没有灰度发布配置。
如果已经匹配了match,因为对应的version或者tags找不到实例,则剩余流量自动转发到目前的最新版本。
-
-#### 负载均衡算法
-
-借鉴了nginx,使用平滑加权轮询算法,流量会均匀的等比分配到对应的服务实例上。
\ No newline at end of file
diff --git a/java-chassis-reference/zh_CN/docs/toc.md b/java-chassis-reference/zh_CN/docs/toc.md
index d538447..a645d52 100644
--- a/java-chassis-reference/zh_CN/docs/toc.md
+++ b/java-chassis-reference/zh_CN/docs/toc.md
@@ -79,7 +79,7 @@
- [处理链介绍](references-handlers/intruduction.md)
- [负载均衡](references-handlers/loadbalance.md)
- [限流](references-handlers/ratelimit.md)
- - [路由管理](references-handlers/router.md)
+ - [灰度发布](references-handlers/router.md)
- [故障注入](references-handlers/fault-injection.md)
- [隔离熔断容错](references-handlers/bizkeeper.md)
- [基于动态配置的流量特征治理](references-handlers/governance.md)
diff --git a/java-chassis-reference/zh_CN/mkdocs.yml b/java-chassis-reference/zh_CN/mkdocs.yml
index 914f192..32e848b 100644
--- a/java-chassis-reference/zh_CN/mkdocs.yml
+++ b/java-chassis-reference/zh_CN/mkdocs.yml
@@ -26,7 +26,7 @@ nav:
- 处理链介绍: references-handlers/intruduction.md
- 负载均衡: references-handlers/loadbalance.md
- 限流: references-handlers/ratelimit.md
- - 路由管理: references-handlers/router.md
+ - 灰度发布: references-handlers/router.md
- 故障注入: references-handlers/fault-injection.md
- 隔离熔断容错: references-handlers/bizkeeper.md
- 基于动态配置的流量特征治理: references-handlers/governance.md