Kaiyun(开云中国)-官方网站

kaiyun网站:代码更新不停机:SpringBoot应用实现热更新机制!-Kaiyun官方网址|登录入口

您当前位置:

首页 > 新闻动态 > 公司动态

kaiyun网站:代码更新不停机:SpringBoot应用实现热更新机制!

发布时间:2024-11-20 浏览次数:

  Java精选面试题 (微信小程序): 5000+ 道面试题和选择题, 真实面经 , 简历模版 ,包含Java基础、并发、JVM、线程、MQ系列、Redis、Spring系列、Elasticsearch、Docker、K8s、Flink、Spark、架构设计、大厂真题等,在线随时刷题!

  在个人或者企业服务器上,总归有要更新代码的时候,普通的做法必须先终止原来进程,因为新进程和老进程端口是一个,新进程在启动时候,必定会出现端口占用的情况,但是,还有黑科技可以让两个SpringBoot进程真正的共用同一个端口,这是另一种解决办法,我们下回分解。

  那么就会出现一个问题,如果此时有大量的用户在访问,但是你的代码又必须要更新,这时候如果采用上面的做法,那么必定会导致一段时间内的用户无法访问,这段时间还取决于你的项目启动速度,那么在单体应用下,如何解决这种事情?

  一种简单办法是,新代码先用其他端口启动,启动完毕后,更改nginx的转发地址,nginx重启非常快,这样就避免了大量的用户访问失败,最后终止老进程就可以。

  但是还是比较麻烦,端口换来换去,即使你写个脚本,也是比较麻烦,有没有一种可能,新进程直接启动,自动处理好这些事情?

  先看第一个问题,用Tomcat来说,这个首先得Tomcat本身支持,如果Tomcat不支持内嵌,Sprin开云网站 kaiyun登录入口网址gBoot估计也没办法,或者可能会另找出路。

  并且打包成jar,然后更改返回值为2,并打包成v2版本的jar包,此时有两个代码,一个新的一个旧的。

kaiyun网站:代码更新不停机:SpringBoot应用实现热更新机制!(图1)

  我们先启动v1版本,并且使用IDEA中最好用的接口调试插件Cool Request测试,可以发现此时都正常。

kaiyun网站:代码更新不停机:SpringBoot应用实现热更新机制!(图2)

  好的我们不用关闭v1的进程,直接启动v2的jar包,并且启动后,可以一直在Cool Request测试接口时间内的可用程度。

  稍等后,就会看到v2代码已经生效,而在这个过程中,服务只有极短的时间不可用,不会超过1秒。

kaiyun网站:代码更新不停机:SpringBoot应用实现热更新机制!(图3)

  公众号“Java精选”所发表内容注明来源的,版权归原出处所有(无法查证版权的或者未注明出处的均来自网络,系转载,转载的目的在于传开云网站 kaiyun登录入口网址递更多信息,版权属于原作者。如有侵权,请联系,笔者会第一时间删除处理!

  最近有很多人问,有没有技术或摸鱼交流群!加入方式很简单,公众号Java精选,回复“加群”,即可入群!在线摸鱼:

联系地址:河北省石家庄市长安区西兆通镇天山北大街36号乐城国际贸易城凯尊国际电商直播大厦12A20

联系电话:0311-82229058

E-mail:596931254@qq.com

服务热线:18233155969

扫一扫,关注我们

Copyright © 2024 开云家居设计工作室 版权所有

冀ICP备2023005676号