ppgjx 发表于 2022-9-8 12:16

spring boot单体项目只有一台服务器如何做到无感知更新?

比如每次更新都要打成jar包,传到线上服务器,然后结束当前的jar包 启动新的jar包 虽然重启就十几秒,但用户还是会有影响?怎么解决这个问题?

风清扬方丈 发表于 2022-9-8 12:36

使用Nginx负载均衡可以完成无感更新,或者使用热更新推送。

艾莉希雅 发表于 2022-9-8 12:52

前面挂个反向代{过}{滤}理后面弄多几个实例咯,单机k3s不是不能用,简单一点nginx直接完事也不是不行

CDCBB 发表于 2022-9-8 13:31

java可以在不停止运行情况下,热更新jar包

8taizi 发表于 2022-9-8 14:25

热更新!!!!!!

连晋 发表于 2022-9-8 14:44

nginx 代{过}{滤}理 两个一样的 jar 应用 但是运行端口不一样[姑且称之为A B 应用]

上线更新的时候,

第一步

ng 的代{过}{滤}理下线 A应用然后停止A应用,更新A应用.重启A应用

第二步
ng的代{过}{滤}理上线A应用 下线B应用    然后停止B应用,更新B应用.重启B应用

第三步

ng的代{过}{滤}理把B应用也上线

即可完成

微笑丶永远 发表于 2022-9-8 15:48

7楼正解,单机也是可以部署多个的

liujiata 发表于 2022-9-8 16:19

k8s 明细他不知道。 不然就不会有这个问题。 nginx反向的7正解。方便快捷好搭建。

Js_Aaron 发表于 2022-9-8 16:42

Nginx 多代{过}{滤}理几个实例,一个个更新就好了

Vvvvvoid 发表于 2022-9-8 17:22

单机不行啊,
类只有在启动的时候才会加载一次,
所谓的热部署, 也只是利用字节码文件, 只重新加载某个 class , 但这样是不稳定的;
比如某些连接对象, 如果重新加载 , 那还是同一个连接么?
页: [1] 2
查看完整版本: spring boot单体项目只有一台服务器如何做到无感知更新?