You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 
SOP/doc/docs/files/10110_预发布灰度发布.md

2.0 KiB

预发布灰度发布

从1.14.0开始支持预发布、灰度发布,可登陆SOP-Admin,然后选择服务列表进行操作。

使用预发布

假设网关工程在阿里云负载均衡有两台服务器,域名分别为:

域名 说明
open1.domain.com 网关服务器1
openpre.domain.com 网关服务器2,作为预发布请求入口

线上网关入口为http://open.domain.com/,请求网关http://open.domain.com/会负载均衡到这两台服务器

SOP开启预发布步骤如下:

修改网关工程配置文件,指定预发布域名

# 预发布网关域名,多个用英文逗号(,)隔开
pre.domain=openpre.domain.com

重启网关

微服务启动参数添加:--spring.cloud.nacos.discovery.metadata.env=pre(eureka下是:--eureka.instance.metadata-map.env=pre)。 建议线上配两套启动脚本,其中预发布启动脚本添加启动参数--eureka.instance.metadata-map.env=pre

登录SOP-Admin,在服务列表中点击预发布,然后预发布请求地址变成:http://openpre.domain.com/。 从openpre.domain.com请求进来的用户都会进预发布服务器,其它情况都走非预发布服务器。

使用灰度发布

灰度发布可允许指定的用户访问灰度服务器,其它用户还是走正常流程。

登录SOP-Admin,前往服务列表

  • 先设置灰度参数,指定灰度appId和灰度接口
  • 服务器实例开启灰度

参考类:

  • SopLoadBalancerClient.java gateway网关下预发布/灰度服务选取
  • EnvironmentServerChooser.java zuul网关下预发布/灰度服务选取

自定义判断灰度用户

默认根据appIdIP来判断灰度用户,如果要通过其它维度来判断是否是灰度用户,可实现GrayUserBuilder接口, 然后在springboot main方法中调用如下方法

ApiConfig.getInstance().addGrayUserBuilder(new XXGrayUserBuilder());

参考:com.gitee.sop.gatewaycommon.loadbalancer.builder.AppIdGrayUserBuilder.java