nacos配置Beta发布
# 一、灰度发布简介
灰度发布的概念我们在apollo及spring cloud config章节都已经介绍过。对于概念模糊的朋友再把下面的这段话看一遍,高手略过。 灰度发布是指在黑与白之间,能够平滑过渡的一种发布方式。AB test就是一种灰度发布方式,让一部分用户继续用A,一部分用户开始用B,如果用户对B没有什么反对意见,那么逐步扩大范围,把所有用户都迁移到B上面来。灰度发布可以保证整体系统的稳定,在初始灰度的时候就可以发现、调整问题。
灰度发布就是让配置先在部分实例生效,如果效果理想全量发布到所有实例,如果效果不理想就可以放弃当前的“灰度发布配置”。
# 二、nacos与灰度发布
在nacos配置管理里面,与灰度发布有相同效果的发布方式被称为beta发布。其实二者的核心内涵并没有什么实质上的差别,下文取自百度百科:
beta发布就是发布一个公测版本,公测结果较好,就全量发布。公测结果不理想,就放弃Beta发布的版本。
# 三、在nacos配置中心实现Beta发布
# 3.1.实验场景
aservice-rbac服务在192.168.161.3,192.168.161.4,192.168.161.5启动了三个实例。我们想把其中192.168.161.3,192.168.161.4实例的配置项"user.init.password"的值改为xxxxyyyy(即:Beta发布),192.168.161.5的配置不做更改。
# 3.2.配置实现步骤
在配置列表页面,选择要进行配置变更灰度发布的配置文件进行"编辑"修改
在配置编辑界面,修改配置项"user.init.password"的值改为xxxxyyyy。并勾选Beta发布,填写需要Beta发布的微服务实例运行的主机的ip,多个ip用逗号分隔。
点击“发布beta”按钮们进行配置发布
beta配置发布之后,正常情况下,192.168.161.3,192.168.161.4上运行的实例的配置项会立刻动态刷新。
配置编辑界面分Tab展示,一个Tab是正式版的配置,也就是192.168.161.5实例正采用的配置。一个Tab是Beta版的配置,也就是192.168.161.3,192.168.161.4实例动态刷新之后的配置。
# 四、Beta配置的测试
因为这种测试方法我们之前的章节已经多次用过,这里就不截图详细说明了,测试方法如下:
- 用postman发送请求到192.168.161.3,192.168.161.4的“/sysuser/pwd/reset”接口,在SysuserService的defaultPassword的默认密码值是xxxxyyyy
- 用postman发送请求到192.168.161.5的“/sysuser/pwd/reset”接口,在SysuserService的defaultPassword的默认密码值是Abcd234
出现以上结果,证明我们的Beta发布结果是正确的。测试代码位置及下断点的位置可以参考:《nacos客户端配置刷新》
# 五、Beta配置回退与全量发布
beta发布的配置可以进行回退,也可以全量发布
- 点击“停止beta”,192.168.161.3,192.168.161.4的配置就回退到正式版的配置。
- 点击“发布”实际就是全量发布,将Beta配置在所有微服务实例(包括192.168.161.5)上生效。当前的“BETA配置”转成新的“正式版”配置。