流量分配
如果您的应用有多个应用实例且需要升级,那么您可以通过 流量分配 的方式来升级应用实例,满足云应用快速迭代和功能验证的需求。
本文介绍流量分配的背景信息、场景示例和操作步骤。
背景信息
- 滚动更新发布策略:通过对不同的应用版本部署实例进行滚动更新,来完成新版本的升级,为了保证应用稳定性,建议您先对新应用版本部署实例后,并完成功能验证测试,再将老版本的实例升级到新版本。
- 流量分配发布策略:借助流量分配可以实现流量切分,快速实现 A/B 测试等高级功能,完成新版本的小规模验证。
流量分配原理
-
系统按照用户设置的多组流量分配规则,由上而下开始匹配,首先匹配成功的,分发路由会被使用。
-
任一流量分配规则匹配成功后,流量按照设置权重切分,切分之后的流量按照系统负载均衡算法分配至下辖所有实例。
-
某些条件下,如配置不当,会发生所有流量规则均匹配失败的情况。此时,系统回退到默认状态(default),流量按照系统负载均衡算法分配至所有部署的所有实例。
场景示例
场景一
假设您有一个老版本 v1,现在上线了新版本 v2。
-
您希望 v1 仍承接大部分流量,v2 承接少量流量。如下图,您可以不设置匹配规则,但给应用的所有部署均设置好分发权重,以实现流量切分。
-
设置完成后,版本 v1 对应部署下所有实例可以获得 90% 流量,版本 v1 对应部署下所有实例可以获得 10% 流量。
场景二
假设您有一个老版本 v1,现在上线了新版本 v2。
-
如果进来的流量属于特定的用户,流量按对应路由分发到新版本 v2 对应部署下的所有实例;
-
反之,流量分发到旧版本 v1 对应部署下的所有实例。
配置如下图所示的流量控制规则:
场景三
可以通过 URL Path 规则,给予新上线 API 少量流量,配置如下图:
操作步骤
-
登录 容器轻应用平台。
-
在左侧导航栏单击应用,在顶部菜单栏选择 部署管理,并切换 区域。
-
单击 流量控制 按钮,弹出流量控制侧边栏,鼠标移至流量分配,开启 流量分配 。
-
设置相关参数,支持设置多组流量分配规则,按照添加顺序优先进行流量分配,该规则对仅该区域下所有实例生效。
1)匹配规则,可以实现更复杂的白名单。
-
默认关闭,点击开启,设置以下参数:
参数 说明 匹配规则 有三种匹配规则:
Headers:对应 HTTP headers,字段名称对应请求 HTTP header name,值对应需要匹配的 HTTP header value。
URL Query:一般为 URL 中的查询参数,如 qiniu.com/v1/users?name=qbox&city=sh 对应 URL Query 为 name 和 city。
URL Path:一般为 URL 中域名后的路径,如qiniu.com/v1/users
对应 URL Path 为/v1/users
。匹配方式 有三种匹配方式:
1) 相等匹配
2) 前缀匹配
3) 正则匹配字段名称 自定义字段名称 值 输入值 注意
一个匹配规则下,多条匹配关系之间是「且」的关系。
2)分发路由
- 下拉选择 部署ID,分配流量权重值。
-
所有部署ID的权重值,相加必须等于100%。
说明
- 流量分配创建之后,分配了流量权重的部署ID不能进行删除。
- 如果您确认要删除某部署ID,需要先删除当前部署ID的流量权重分配,才可以在部署列表中进行删除。
-
-
点击 确定,流量分配规则生效。
流量分配失效
流量分配创建之后,分配了流量权重的部署ID如果实例缩为0,则当前流量分配规则会失效,需要先删除当前部署ID的流量权重分配,才可以重新生效。