概述
背景信息
在微服务架构下,有些开发需求会使微服务调用链路上的多个微服务同时发生了改动,通常每个微服务都会有灰度环境或分组来接收灰度流量。此时希望通过进入上游灰度环境的流量,也能进入下游灰度的环境中,确保一个请求始终在灰度环境中传递,即使这个调用链路上有一些微服务没有灰度环境,这些应用请求在下游的时候依然能够回到灰度环境中。通过Sermant Agent提供的全链路灰度能力,可以在不需要修改任何您的业务代码的情况下,能够轻松实现上述能力。
本文通过示例为您演示Sermant Agent全链路灰度功能。假设应用的架构由Sermant Agent以及后端的微服务架构(Spring Cloud)组成,后端调用链路:providerA->providerB,通过consumer调用后端服务,所有服务挂载的Sermant Agent使用CSE注册中心。
![](https://support.huaweicloud.com/bestpractice-cse/public_sys-resources/note_3.0-zh-cn.png)
- 此功能目前处于公测阶段,当前仅在华东-上海一支持。
- 当ServiceComb引擎为2.4.0及以上版本且未开启安全认证时,支持此功能。
方案
通过设置Head参数,保证访问到灰度环境实例:
前提条件
- 已创建云容器引擎(CCE),创建CCE请参考创建CCE集群。
- CCE集群版本需要大于等于1.15。
- 已安装kubectl命令,安装kubectl命令请参考通过kubectl连接集群相关操作。
- 已创建未开启安全认证的ServiceComb引擎实例,详情请参考快速创建ServiceComb引擎。
- 本地编译构建打包机器环境已安装了Java JDK、Maven,并且能够访问Maven中央库。
- Sermant Agent开源版本要求1.0.6及以上。