灰度发布 为保障新特性能平稳上线,可以通过灰度发布功能选择少部分用户试用,待新特性成熟以后,再切换版本让所有用户使用。 基于ServiceComb Java Chassis框架开发的微服务需要在POM中添加依赖darklaunch或handler-router,并且在配置文件中增加servicecomb.router.type=router。 基于Spring Cloud Huawei框架开发的微服务需要在POM中增加依赖spring-cloud-starter-huawei-router。 登录微服务引擎控制台。 在左侧导航栏选择“ServiceComb引擎专享版”。 单击待操作的引擎。 单击“微服务目录”。 未开启安全认证的ServiceComb引擎,请执行6。 开启安全认证的ServiceComb引擎,请执行5。 在弹出的“安全认证”对话框输入帐号名及其密码,单击“确定”。 首次连接ServiceComb引擎,请输入root帐号名及创建ServiceComb引擎时输入的密码。 创建帐号请参考新增帐号。 在“微服务列表”页签,单击微服务名称,进入详情页面,单击“灰度发布”。 单击“添加发布规则”,弹出“创建新规则”弹框。 按照权重方式添加灰度规则。 “发布规则”选择“权重”,显示权重规则设置页签。 对权重规则进行设置,权重规则配置项如下表所示。 配置项 说明 规则名称 自定义规则名称。 作用域 选择规则作用的版本。 勾选“是否添加自定义版本”,根据界面提示添加新版本。 规则配置 配置所选版本的引流权重,流量会按照配置的百分比分配给所选择的服务版本。 单击“确定”,完成权重规则配置和灰度发布。 按照自定义方式添加灰度规则。 只有ServiceComb Java Chassis框架开发的微服务通过依赖darklaunch实现灰度能力和Spring Cloud Huawei框架开发的微服务实现灰度能力,可通过此功能实现下发灰度规则。依赖handler-router下发的灰度规则需要手动在配置中心下发。 “发布规则”选择“自定义”,显示自定义规则设置页签。 对自定义规则进行设置,自定义规则配置项如下表所示。 配置项 说明 规则名称 自定义规则名称。 作用域 选择规则作用的版本。 勾选“是否添加自定义版本”,根据界面提示添加新版本。 规则配置 设置匹配规则的参数,使用darklaunch实现灰度能力时,设置的是policyCondition内容,其他设置的是Headers参数。 Spring Cloud Huawei框架开发的微服务设置的Headers参数请参见设置Header参数 。 参数名 根据契约的参数名或Header自定义的key作为参数名设置。 规则 通过选择匹配符和契约的Key或Header的Key对应的Value确定符合该规则的请求将被分配到微服务版本中。 说明: 当匹配符选~时,可使用*或者?字符的模糊匹配规则自定义规则值,*表示任意长度字符,?表示一个字符。比如,字段Name的规则值配置为*1000时,表示Name后4位为1000的都能匹配上。 当匹配符没有选~时,*或者?字符只是普通字符,没有模糊匹配的作用。 单击“确定”,完成自定义规则配置和灰度发布。 下发灰度发布规则样例如下: ServiceComb Java Chassis框架开发的微服务,在ServiceComb引擎页面下发规则是基于darklaunch依赖下发的,通过配置自定义方式添加灰度规则。 其中,在规则配置中,参数名Key必须是契约里面存在的。有可能服务端接口写的是String paramA,加了注解实际生成的是paramB,所以这里应该是写paramB。 通过选择匹配符和契约的Key对应的Value确定符合该规则的请求将被分配到微服务版本中。 成功下发的规则内容如下:配置项为cse.darklaunch.policy.${serviceName}。 ServiceComb Java Chassis框架开发的微服务,依赖handler-router下发的灰度规则需要手动在配置中心下发,配置项为:servicecomb.routeRule.${serviceName},内容如下: Spring Cloud Huawei框架开发的微服务,ServiceComb引擎页面下发灰度规则如下: