我们的应用程序基于Spring启动,应用程序将打包到war
文件并与java -jar xx.war -Dspring.profile=xxx
一起运行。通常,最新的war
包将由静态Web服务器(如nginx)提供。
现在我们想知道是否可以为应用程序添加自动更新。
我已经google了,人们建议使用支持热部署的应用服务器,但我们使用如上所示的spring boot。
我想在应用程序启动后启动一个新线程,然后检查更新并下载最新的包。但是我必须终止当前应用程序以启动新应用程序,因为它们使用相同的端口,如果关闭当前应用程序,更新线程也将终止。
那么如何处理这个问题?
答案 0 :(得分:0)
在我看来,应该由一些更高级的dev-ops级别编排系统来管理,而不是应用程序或其容器。替换应用程序的决定不应该是开发者级别而不是应用程序级别
spring-boot的一个主要优点是将传统的应用程序web容器转换为web-app模型。因此,通常在应用程序本身内部构建Web容器(并且最好使用Spring启动)。因此,它是完全独立的,至关重要的是不可改变的。因此,不应该将app-web-container / web-app的角色替换为部分或全部。
当然你可以做任何你喜欢的事情,但你可能会发现解决方案并不容易,因为以这种方式做这件事并不常见。