工作纪实46-关于微服务的上线发布姿势

蓝绿部署

在部署时,不需要将旧版本的服务停掉,而是将新版本与旧版本同时运行,新版本测试无误之后再将旧版本停掉。这样可以避免再升级的过程中如果失败服务不可用的问题,因为同时部署了两个版本的程序,使得硬件资源是普通部署的两倍。

滚动发布


滚动发布可以解决蓝绿部署需要硬件资源两倍的问题。再升级的过程中,每次替换一个旧版本的副本,直到所有旧版本被替换完毕。但是这样做的缺点是,由于新旧版本同时运行,有些流量会流入到新版本中,但是新版本并不一定是可用的,很难确定是新版本还是旧版本的问题。在滚动发布的过程中,整个系统都趋于不稳定的状态。

灰度发布

又称金丝雀发布,叫金丝雀的原因是在矿井挖掘中,人们发现金丝雀会对瓦斯浓度很敏感,在挖掘前将金丝雀放入到矿井中,如果金丝雀不叫了,那么表示矿井中瓦斯浓度很高。

在试用灰度发布的过程中会新开一个应用程序,让开发人员对应用测试没问题之后,可用将少量流量接入到新版本中,然后将旧版本与新版本各项数据进行对比,如果执行良好之后则可用加大流量,然后将所有旧版本替换成新版本。

相关推荐
菜鸟起航ing31 分钟前
【Java面试系列】Spring Cloud微服务架构中的分布式事务实现与性能优化详解 - 3-5年Java开发必备知识
java·spring cloud·微服务·面试·分布式事务
uhakadotcom1 小时前
简单理解 x402 支付协议
后端·架构·github
极客先躯2 小时前
高级java每日一道面试题-2025年4月01日-微服务篇[Nacos篇]-Nacos集群的数据一致性是如何保证的?
java·开发语言·微服务
汤姆大聪明3 小时前
微服务与Spring Cloud Alibaba简介
java·spring boot·spring·spring cloud·微服务
胖头鱼不吃鱼-4 小时前
微服务拆分的原则、时机、方法以及常见问题
java·微服务·架构
泥人暖风4 小时前
构建IOTA环境Hornet
架构
潘锦4 小时前
稳住!AIGC 架构中的排队系统与限流策略
架构·aigc
小马爱打代码4 小时前
分布式和微服务的区别
分布式·微服务·架构
理智的灰太狼5 小时前
微服务多模块构建feign项目过程与一些报错(2025详细版)
java·微服务·架构
杨凯凡6 小时前
Linux目录探秘:文件系统的核心架构
linux·运维·服务器·架构