概述
标签路由是将每个服务打上一个标签,通过标签将标签相同的服务分为同一个分组,然后约束流量在同一个分组内流转,以此实现灰度发布、金丝雀发布、蓝绿发布等功能
版本限制
框架 | 限制 | 详情 |
---|---|---|
Spring Cloud | Spring Cloud Edgware及以上版本 | 客户端:Feign、RestTemplate 负载均衡:Ribbon、LoadBalancer |
Dubbo | 2.5.3~2.7.8 | 支持Alibaba Dubbo、Apache Dubbo |
注册中心 | Nacos、Eureka、Zookeeper | -- |
jdk版本 | 1.8+ | -- |
应用场景
A/B测试
在营销活动中,经常会有A/B测试,A/B测试是为了测试不同的规则对业务的影响,所以一个应用会有多个版本同时运行,可以通过标签的方式区分不同的版本,对不同版本的应用进行流量隔离,将特殊用户的流量路由到特殊版本,从而实现A/B测试。
开通标签路由
步骤1 为应用设置标签
为云容器引擎集群应用设置标签,为应用容器添加ctgcloud.service.tag注解
为ECS应用设置标签,在启动应用时,添加JVM启动参数-Dctgcloud.service.tag=gray
步骤2 在微服务治理中心控制台创建标签路由
- 登录微服务治理中心控制台
- 在左侧导航栏选择 微服务治理中心 ->应用列表
- 在应用列表选择应用product-service
- 在product-service的应用详情页面选择标签路由页,查看服务标签
- 在标签路由页点击流量分配,为标签按比例分配流量
- 在标签路由页的流量规则栏新增流量规则
流量规则参数说明:
参数 | 说明 |
---|---|
路由名称 | 路由规则的名称 |
应用 | 所选的应用 |
标签 | 设置的标签名 |
应用实例 | 设置了该标签的实例ip |
是否链路传递 | 代表开启全链路流控 |
框架类型 | Spring Cloud Dubbo |
Path | SpringCloud为path路径,Dubbo为接口 |
条件模式 | 满足一个条件,或者满足所有条件 |
条件列表 | 可以设置Header、Cookie、Parameter和Body Content四种参数类型 |
是否开启流量规则 | 流量规则开关 |