概述
金丝雀发布是指在应用发布时,可以为新版本的应用打上gray的标签,通过按流量比例路由或按内容路由的方式,将灰度流量引入带有gray标签的应用中,从而达到小规模验证的目的。
版本限制
框架 | 限制 | 详情 |
---|---|---|
Spring Cloud | Spring Cloud Edgware及以上版本 | 客户端:Feign、RestTemplate; 负载均衡:Ribbon、LoadBalancer。 |
Dubbo | 2.5.3+ | 支持Alibaba Dubbo、Apache Dubbo。 |
注册中心 | Nacos、Eureka、Zookeeper | 无。 |
jdk版本 | 1.8+ | 无。 |
操作步骤
假设有两个服务app-a和app-b,调用关系为app-a->app-b,这两个服务都已接入微服务治理中心。此时app-b有灰度应用需要发布,需要实现在app-a调用app-b的过程中,将灰度流量引入到app-b的灰度应用中进行小规模验证。
部署app-b灰度应用
部署app-b灰度应用,需为灰度应用打上灰度标签,主要提供如下两种方式:
为云容器引擎集群应用设置标签,可以为容器添加环境变量MSE_SERVICE_TAG=gray。
为ECS应用设置标签,在应用启动时,添加JVM启动参数-Dctgcloud.service.tag=gray。
查看金丝雀页面
完成灰度应用部署后,即可查看应用当前存在的标签。
1.登录微服务治理中心控制台。
2.在左侧导航栏选择 微服务治理中心 ->应用治理。
3.在应用治理页面单击目标应用卡片。
4.在左侧导航栏选择流量治理 - 金丝雀,即可查看灰度应用标签。
设置灰度规则并引入流量
金丝雀提供两种灰度规则,分别是按比例路由和按内容路由,按比例路由指的是将指定比例的流量路由到灰度应用,按内容路由是指针对请求头、请求参数或请求体中的内容做匹配,将满足匹配规则的流量路由到灰度应用。
按比例路由
1.登录微服务治理中心控制台。
2.在左侧导航栏选择 微服务治理中心 ->应用治理。
3.在应用治理页面单击目标应用卡片。
4.在左侧导航栏选择流量治理 - 金丝雀,点击引入流量。
5.设置灰度应用的流量比例。
按内容路由
1.登录微服务治理中心控制台。
2.在左侧导航栏选择 微服务治理中心 ->应用治理。
3.在应用治理页面单击目标应用卡片。
4.在左侧导航栏选择流量治理 - 金丝雀,点击引入流量。
5.设置灰度应用的内容规则。
按内容灰度参数说明:
参数 | 说明 |
---|---|
框架类型 | Spring Cloud/Dubbo。 |
Path | Spring Cloud为接口路径,Dubbo为接口。 |
条件模式 | 满足一个条件,或满足所有条件。 |
条件列表 | 可以设置Header、Cookie、Parameter和Body Content四种参数类型。 |
是否链路传递 | 代表开启全链路流控。 |
完成发布
完成小规模流量验证后,点击发布完成,未打标版本的流量比例会被调整为100%,此时所有的流量都会转发到未打标应用中。
若发布失败,点击回滚,配置的规则会被清楚,此时所有的流量都会转发到未打标应用中。