12|案例:如何实现蓝绿发布?
设计背景
设计方案
- 深入了解
- 翻译
- 解释
- 总结
本文详细介绍了在生产环境中实现蓝绿发布的重要性和具体操作方法。随着微服务应用的增加,更新、升级部署给整个服务域的稳定性带来挑战。文章首先强调了基础服务的稳定运行对整个微服务体系的重要性,然后讨论了如何通过蓝绿发布来实现不停机升级微服务,以确保基础服务域不受版本影响,始终能够提供稳定可控的服务。文章详细介绍了蓝绿发布的基本流程,包括在蓝、绿两套环境中分别运行项目的两个版本的代码,并通过流量切分算法实现流量的切换和回滚。此外,还介绍了在Dubbo服务调用中如何通过路由选择和标签路由机制实现蓝绿发布的流量切分和选择。通过本文的介绍,读者可以了解到蓝绿发布在微服务系统中的重要性,以及如何在生产环境中应用蓝绿发布来实现微服务的稳定升级。整体而言,本文通过详细介绍蓝绿发布的实现流程和技术细节,为读者提供了在微服务系统中实现稳定升级的重要思路和方法。
《中间件核心技术与实战》,新⼈⾸单¥59
全部留言(8)
- 最新
- 精选
- dudu-benny听完蓝绿发布模式 有点像spring cloud gateway 的动态路由策略 结合nacos的动态配置策略 进行 配置分类进行路由分发 也能达到蓝绿发布的效果 不知道这样理解对不对
作者回复: 是的,蓝绿发布本质上就是路由选择。
2022-07-30归属地:上海3 - 算法成瘾者蓝绿发布时,也要保留default 默认版本的服务,让没接入考虑的服务使用该服务。 服务入口处蓝绿染色,层层传递 tag的过程和调用链传递traceId有点像
作者回复: 正解,其实技术思想是相通的。
2022-08-29归属地:上海2 - 郭刚如果只是java代码的发布,我觉得是可以这么做,如果数据库上有加字段,加表的操作,这种是不是就不适用了?
作者回复: 其实只要原先代码能正常运行,其实就不受影响,因为我们要知道,蓝绿发布,就是两套业务在同时运行,也就是说两条运行路径都是正确的,都是满足具体业务逻辑的,都能最终实现业务流程的完整性,新业务是对旧业务的优化,慢慢可以替换老业务。
2022-09-08归属地:上海 - 胡淘尘如果升级服务时有修改定时调度的代码逻辑,如何在蓝绿发布的过程中保证兼容性?对定时任务的服务还有哪些注意事项呢?
作者回复: 其实这个是否兼容关系不大,我们可以理解为两个版本 v1、v2,其中v2为新版本,这个时候v1处理的数据还是原先的逻辑,走的数据还是原先的模式,而v2是新方式,这两个都是正常的业务,都是正确的数据。 当然,目前现在调度领域讲究一种新的设计思路:定时调度与业务逻辑分开,通常调度器只触发任务,具体的业务调度逻辑,我们会定义为rpc接口(dubbo),这样定时任务领域的蓝绿机制,就会转移到dubbo的蓝绿机制上。 不知这样,有解决你的疑问没,欢迎继续交流。
2022-07-25归属地:上海3 - 风蓝绿需要多套环境成本较高
作者回复: 嗯,对头,一般需要蓝绿的场景都是一些直接面向用户C端系统,而且有时候也存在启用蓝绿的目的是希望能无缝发布并支持快速回退。
2022-07-14 - open!?蓝绿发布 如果流量走蓝绿两套会有不一样的结果 那就不能蓝绿发布了吧 。 想问一下 上面写着RPC会带上标签依次调用 比如 链路是A1 B1 C1 如果只升级了B1 切换为B2 但RPC标签会导致调用链为A1 B2 C2吧 ?C如果没升级岂不是会调用到老的。。2022-11-29归属地:浙江
- 公号-技术夜未眠采用蓝绿发布策略,数据库升级发布需要注意些什么?2022-07-113
- 雨落~紫竹为什么不通过nginx 代理的方式 对新旧版本所在容器的流量进行限制和切换呢 运维层可以做到 不需要代码层去干 增加开发量2022-07-112