Tomcat 是否可以在不停止应用程序的情况下部署新的.war应用程序?
嘿,我是Grails新手,我想知道如何部署。一旦将.war部署到生产环境中,我如何才能在不停机的情况下更新应用程序?我所知道的是,您可以更改groovy文件或.gsp文件,保存更改后,浏览器中会显示这些更改,但如果存在其他类型的文件,我不完全确定这一功能。一旦您的应用程序打包为war,对源文件的更改不会像使用run app时那样自动传播。总的来说,我认为,特别是对于编译后的代码,如果代码一直处于有效的活动状态,那么执行实时更新就有点风险。您可以在开发过程中处理奇怪的部署故障,但在生产过程中,我更希望安全起见,并有一点停机时间。即使您热部署WAR文件(通过不重新启动服务器),在重新加载上下文时仍会有一些停机时间。这不是Grails本身,更像是J2EE/servletTomcat 是否可以在不停止应用程序的情况下部署新的.war应用程序?,tomcat,grails,war,Tomcat,Grails,War,嘿,我是Grails新手,我想知道如何部署。一旦将.war部署到生产环境中,我如何才能在不停机的情况下更新应用程序?我所知道的是,您可以更改groovy文件或.gsp文件,保存更改后,浏览器中会显示这些更改,但如果存在其他类型的文件,我不完全确定这一功能。一旦您的应用程序打包为war,对源文件的更改不会像使用run app时那样自动传播。总的来说,我认为,特别是对于编译后的代码,如果代码一直处于有效的活动状态,那么执行实时更新就有点风险。您可以在开发过程中处理奇怪的部署故障,但在生产过程中,我更
正如dogbert所说,最好打开一个维护页面(在Tomcat面前使用Apache是个好主意),关闭应用服务器,上传新的WAR,然后再次启动服务器 您可以设置两个tomcat实例,前面有一个Apache
mod\u proxy\u平衡器
,如前所述。对于应用程序的重新部署,可以应用“滚动升级”策略(假设app1和app2是您的两个tomcat实例):
上面的内容可能会被封装在一个容器中,因此一个简单的“grails集群重新部署”就可以完成您所需要的一切。这样一个脚本目前在我的列表中,但我不知道何时才能完成。如果您使用的是Tomcat,则可以使用所谓的并行部署: 只需使用文档中描述的版本号命名war文件:
- 福42.战争
- foo##43.战争