Spring Cloud 微服务开发:入门、进阶与源码剖析 —— 6.5 Spring Cloud Zuul 灰度发布

6.5 Spring Cloud Zuul 灰度发布

6.5.1 灰度发布概述

灰度发布,又有人称金丝雀发布,金丝雀发布这个名称起源于17世纪,17世纪,英国矿井工人发现,金丝雀对瓦斯这种气体十分敏感。空气中哪怕有极其微量的瓦斯,金丝雀也会停止歌唱;而当瓦斯含量超过一定限度时,虽然鲁钝的人类毫无察觉,金丝雀却早已毒发身亡。当时在采矿设备相对简陋的条件下,工人们每次下井都会带上一只金丝雀作为“瓦斯检测指标”,以便在危险状况下紧急撤离。

灰度发布,是指在黑与白之间能够平滑过渡的一种发布方式。在其上可以进行A/B testing,即让一部分用户继续用产品特性A,一部分用户开始用产品特性B,如果用户对B没有什么反对意见,那么逐步扩大范围,把所有用户都迁移到B上面来。

灰度发布是对某一产品的发布逐步扩大使用群体范围,也叫灰度放量。灰度发布可以保证整体系统的稳定,在初始灰度的时候就可以发现、调整问题,以保证其影响度。

灰度期:灰度发布开始到结束期间的这一段时间,称为灰度期。

6.5.2 灰度发布实战

在发布版本的时候,在不确定正确性的情况下,我们选择先部分节点升级,然后让一些特定的流量进入到这些新节点,完成测试后再全量发布,如图6-17:

Spring Cloud 微服务开发:入门、进阶与源码剖析 —— 6.5 Spring Cloud Zuul 灰度发布_第1张图片

在eureka中注册各个服务后,如果一个服务有多个实例,那么默认会走ribbon的软负载均衡来进行分发请求。

我们要完成灰度发布,要做的就是修改ribbon的负载策略(rule),通过一些特定的标识,譬如我们可以选择header里带有mark的全部路由

你可能感兴趣的:(Spring,Cloud,微服务开发:入门,进阶与源码剖析)