前言
灰度发布这个词对很多同学来说并不陌生,灰度的概念其实是非常广泛的,不能仅仅停留在服务器层面
举例来说,你开发的软件上个版本是V1.0,本次即将发布的是V2.0,但稍有经验的同学应该都知道,如果新版本的功能改动非常大,但是这种改动还必须要经过用户的使用检验,任何的产品都可能存在bug,为了发布出去之后一旦有问题能够快速回退,切换到之前稳定的版本,这个过程就需要用到灰度发布;
类似的场景还有很多,大家熟悉的游戏公测也是如此,先让一部分种子用户试用新的版本,一旦当公测达到了预期的标准,然后将新版本的服务全部放开
关于灰度发布的理论方面的扩展本篇不过多展开,网上可以查询的资料非常多,本篇以实战开发微服务中遇到的灰度发布场景,以一个实际的技术解决方案为例来进行说明,如果利用dubbo的版本号实现后端服务的灰度发布
前置准备
zk服务,如果已经安装过,只需要启动即可
本篇技术栈
springboot+dubbo