概述
您可以为部署在MSAP中的微服务应用配置全链路流量控制,将具有一定特征的流量路由到目标版本应用。
前提条件
部署新版本应用或升级应用。
背景信息
本文以电商架构中的下单场景为例介绍全链路流控功能。
客户下单后流量从入口应用(或者微服务网关)进来,调用商城应用,商城应用再调用订单应用,订单应用调用下游的支付应用。
商城应用和订单应用各有两个新版本(V1.1和V1.2)在运行,需要对这两个新版本进行灰度验证。此时在入口应用(或者微服务网关)上期望将满足特定流控规则的请求流量路由到新版本,其余流量全部路由到线上(基线)版本。
创建泳道组
在左侧导航栏,选择微服务治理 > 全链路流量控制,单击创建泳道组及泳道按钮。
- 环境:选择一个环境。
- 泳道组名称:自定义一个泳道组名称。
- 入口类型:目前只支持MSAP中部署的应用/网关。
- 入口应用:选择一个入口应用,一般为网关。
- 泳道组涉及的所有应用:选择您的入口应用/网关所涉及的所有相关服务。
创建泳道
在左侧导航栏,选择微服务治理 > 全链路流量控制,创建好泳道组后,在泳道组页面最下方,点击创建第一个分流泳道。
- 环境:选择一个环境。
- 分流泳道名称:自定义一个分流泳道名称。
- 接收打标流量应用:单击添加泳道应用,在所属泳道组内选择应用。
- 流控规则:流控路由开关,默认关闭。
- Path:选择您的入口应用/网关所涉及的所有相关服务。
- 条件模式:请根据实际需要选择条件模式,包含同时满足下列条件和满足下列任一条件。
- 条件列表:单击添加规则条件,可根据需要添加多项条件。您可以设置Cookie、Header、Parameter和等不同类型的条件。
验证特征流量路由到目标应用
- 对入口应用发起请求,若泳道条件列表中设置的规则为userId = 1时,流量到泳道打标应用,则请求http://ip:port/path/userId=1,流量会到泳道中设置的打标应用中。
- 通过观察返回结果查看流量是否到对应版本的应用,同时也可以通过界面查看流量的分布情况。