SpringCloud如何实现灰度发布


这篇文章主要讲解了“SpringCloud如何实现灰度发布”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“SpringCloud如何实现灰度发布”吧!灰度发布又称金丝雀发布,是在系统升级的时候能够平滑过渡的一种发布方式。在其上可以进行A/B测试,即让一部分用户继续用产品特性A,一部分用户开始用产品特性B免费云主机域名,如果用户对B没有什么反对意见,那么逐步扩大范围,把所有用户都迁移到B上面来。灰度发布可以保证整体系统的稳定,在初始灰度的时候就可以发现、调整问题,以保证其影响度。关于金丝雀发布名称的来历:矿工下要矿井,要验证是否有瓦斯,金丝雀对瓦斯很敏感,通过观察金丝雀的反应判断是否安全。1.降低发布带来的影响,虽然功能都在测试环境测过,但毕竟没有发布到生产环境,如果先让少部分用户先使用新版本,提前发现bug,或者性能问题,提前做好修复,就可以降低新版本带来的影响;2.通过对新老版本的对比,观察新版本带来的效果。结合工作中使用到的灰度发布实践和对其他大厂的灰度发布调研,总结了以下灰度发布方案。3.1.1整体流程指定灰度规则->预制代码规则->springcloud自定义metadata3.1.2前置环境(需要自行搭建四个至少服务)eureka:注册中心zuul:网关service-v1:集群服务v1版本service-v2:集群服务v2版本3.1.3核心代码pom.xml灰度过滤器(核心代码)3.2.1整体流程springcloud自定义metadata->获取当前用户的版本->遍历服务获取服务的的版本,返回合适的服务3.2.2前置环境(需要自行搭建5个至少服务)eureka:注册中心service-A:服务调用方service-v1:集群服务v1版本service-v2:集群服务v2版本3.2.3核心代码threadlocal工具类切面获取version的值rule规则注意:提前踩坑,No qualifying bean of type ‘com.netflix.loadbalancer.IRule‘ available: expected single matching bean当是觉得很奇怪,命名自己只定义了grayRule负载均衡策略规则,metadataAwareRule这个我代码中并没有。经过排查自己使用在pom中引入了Ribbon的包,该包默认会带负载均衡策略规则。导致有多个规则,从而报错。删除该包即可删除后重新运行服务与服务的灰度发布的另外一种方式:可以在requestAspect中获取到version后,直接比对版本:RibbonFilterContextHolder.getCurrentContext().add(“version”, “v1”),这种凡是与网关与服务的灰度发布相似。感谢各位的阅读,以上就是“SpringCloud如何实现灰度发布”的内容了,经过本文的学习后,相信大家对SpringCloud如何实现灰度发布这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是百云主机,小编将为大家推送更多相关知识点的文章,欢迎关注!

相关推荐: Python如何创建格式化字符串

这篇文章主要介绍“Python如何创建格式化字符串”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“Python如何创建格式化字符串”文章能帮助大家解决问题。当我们需要创建文本或文档时,我们往往希望能够将值正确格式化为结构…

免责声明:本站发布的图片视频文字,以转载和分享为主,文章观点不代表本站立场,本站不承担相关法律责任;如果涉及侵权请联系邮箱:360163164@qq.com举报,并提供相关证据,经查实将立刻删除涉嫌侵权内容。

Like (0)
Donate 微信扫一扫 微信扫一扫
Previous 05/07 18:08
Next 05/07 18:08

相关推荐