Tomcat并行部署,自动取消部署旧应用程序


10

一段时间以来,我一直在使用Tomcat 8的并行部署作为零停机连续部署设置的一部分。

运行测试手套后,CI服务器会自动将.war文件重命名为application ## {version-number} .war并将war复制到/ webapp文件夹。应用程序## 333将与应用程序## 332很好地共存。

我遇到的唯一问题是,一旦所有流量(新会话)自动转换为新应用程序,我就必须手动取消部署旧应用程序。

Tomcat是否具有某种内置机制来表示“嘿,当该服务降为零会话时,应将其删除”?也许我可以利用某种“最近的会话刚刚过期”事件。

如果有人取消了这种应用程序的自动化,我很想听听。谢谢!

Answers:


9

您可以配置Tomcat来删除旧的应用程序。您需要将undeployOldVersions属性添加到Host元素并将其设置为true。您需要将server.xml中的主机修改为以下内容:

<Host undeployOldVersions="true" ...>
   ...
</Host>

有关详细信息,请参见主机文档。特别是,这仅在启用自动部署时有效。


您在什么版本的Tomcat上运行?我有Tomcat 8.5.6,这不起作用。我已启用FarmWarDeployer,并且自动部署了新版本。但是,在Host标签上启用undeployOldVersions后,较早的war文件(和部署)不会被删除。
皮科

Tomcat 8在这方面有什么进展吗?
JimmyD

1
该功能是针对Tomcat 8实施的。如果在使用FarmWarDeployer时遇到问题,请打开一个bug,并提供重现步骤,以便对其进行研究。
马克·托马斯
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.