灰度发布
灰度发布(又名金丝雀发布)是指在黑与白之间,能够平滑过渡的一种发布方式。在其上可以进行A/B testing,即让一部分用户继续用产品特性A,一部分用户开始用产品特性B,如果用户对B没有什么反对意见,那么逐步扩大范围,把所有用户都迁移到B上面来。灰度发布可以保证整体系统的稳定,在初始灰度的时候就可以发现、调整问题,以保证其影响度。
灰度期:灰度发布开始到结束期间的这一段时间,称为灰度期。
概述
灰度发布可以直接应用在网关上,通过网关控制调用不同的微服务集群,以最简单、最直观的方式实现。
实现原理:
- 定义两个集群,旧的微服务和新的微服务
- 当用户请求接口时,通过自定义灰度发布实现,调用不同的微服务集群
自定义灰度发布实现
继承接口com.wueasy.gateway.service.GrayscaleReleaseService
/**
* 自定义灰度发布接口实现
* @author: fallsea
* @version 1.0
*/
@Service
public class DemoGrayscaleReleaseService implements GrayscaleReleaseService {
@Override
public String getClientId(String funcNo, HttpServletRequest request) {
//在这里进行控制,返回不同的微服务busid
//获取session
Session session = SysUtil.getSession();
session.getUser();//获取用户信息
return null;
}
}
通过以上自定义灰度发布实现后,会按照定义的规则来执行。