关于Java应用部署

本文探讨了Java应用的平滑部署,强调了优雅关闭和无停机发布的重要性。介绍了停机发布、功能开关发布、蓝绿发布、金丝雀发布和滚动发布的策略。还提到了Spring Boot Actuator、扩容缩容方案、服务监控和管理工具,以及集群调度系统。
摘要由CSDN通过智能技术生成

本文就项目上线部署发布做一些探讨,只做抛砖引玉,错漏之处欢迎评论指出,+V luosanlechang

背景
我们日常的生产发布很多团队都是停服发布新版,其实在用户量访问频繁,规模大的系统,很多是不允许停服升级的,或者他们选择半夜发布,其实都是很不明智的做法,不仅花时间而且花精力。

试想一下,一个正在运行 Java 应用如果突然将其停止,影响不止数据丢失,还会造成其他影响。比如:

请求丢失:内存队列中等待执行请求丢失
数据丢失:处于内存缓存中数据未持久化到磁盘
文件损坏:正在写的文件没有没有更新完成,导致文件损坏
业务中断:处理一半的业务被强行中断,如支付成功了,却没有更新到数据库中
服务未下线:上游服务依然往停止节点发送请求
所以在关闭服务之前,我们需要先做好善后工作,比如保存数据,清理资源,下线服务,然后才退出应用。这种有计划平滑的关闭应用相对直接停止应用,就显得非常『优雅』。

同理,前端发布页面版本也会出现这种访问和缓存错误问题。

因为选择合理的发布方式尤其重要,不同规模的团队和应用也有不同阶段的发布方式选型。

常见发布方式
停机发布
功能开关发布:利用代码中的功能开关(Feature Flag/Toggle/Switch)来控制发布逻辑。
蓝绿发布:两套环境交替升级,旧版本保留一定时间便于回滚。
金丝雀发布(灰度发布):小比例发布,测试通过后再全量,例如 2% 的服务器,主要做流量验证用ÿ

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值