通过Nacos权重配置,实现微服务金丝雀发布效果(不停机部署)

        在微服务项目迭代的过程中,不可避免需要上线;上线对应着部署,或者升级部署;部署对应着修改,修改则意味着风险。

        传统的部署都需要先停止旧系统,然后部署新系统,之后需要对新系统进行全面的功能测试,如果新系统存在bug,则需要重新回退到旧系统,整个升级过程中,用户是无法正常使用系统的,用户体验不好。

        下面利用nacos的特性,对相同服务的不同实例访问权重进行在线配置,动态调整流量,实现新旧服务的同时在线,平滑升级系统,或者回退系统。

重点:在nacos的配置文件application.properties中开启对负载均衡的支持。加入下面配置:

#开启nacos的负载均衡策略
spring.cloud.loadbalancer.nacos.enabled=true

 配置完成后,nacos必须重启;

通过Nacos权重配置,实现微服务金丝雀发布效果(不停机部署)_第1张图片

通过Nacos权重配置,实现微服务金丝雀发布效果(不停机部署)_第2张图片

通过Nacos权重配置,实现微服务金丝雀发布效果(不停机部署)_第3张图片

通过Nacos权重配置,实现微服务金丝雀发布效果(不停机部署)_第4张图片

通过Nacos权重配置,实现微服务金丝雀发布效果(不停机部署)_第5张图片

通过Nacos权重配置,实现微服务金丝雀发布效果(不停机部署)_第6张图片

通过Nacos权重配置,实现微服务金丝雀发布效果(不停机部署)_第7张图片

通过Nacos权重配置,实现微服务金丝雀发布效果(不停机部署)_第8张图片

 点击“登录”按钮;

通过Nacos权重配置,实现微服务金丝雀发布效果(不停机部署)_第9张图片

 通过Nacos权重配置,实现微服务金丝雀发布效果(不停机部署)_第10张图片

       至此,通过nacos控制集群内不同实例的访问流量已经配置生效,生产环境中,可以先放入少量新版本的流量,观察没有错误(包括日志记录)后,再逐步提升新版本流量,最后旧版本服务实例集群下线,新版本集群根据实际负载策略,配置nacos中的权重即可,做到了不停机系统升级。

你可能感兴趣的:(微服务,架构,云原生)