tomcat 并行部署详细记录

本文介绍了如何在Tomcat中实现应用的热部署和并行部署,以实现升级时不重启服务且不影响业务。从Tomcat7.0.5开始支持并行部署,通过将不同版本的war包放入webapps目录,Tomcat会自动部署新版本。同时,配置undeployOldVersions参数可自动清理旧版本。此外,还提供了遇到问题时的解决方案,如直接使用文件夹部署和处理war包部署错误。
摘要由CSDN通过智能技术生成

一、需求

生产环境中,升级应用每次都要重启tomcat,每次都要问客户可以停机更新了没。

为了实现升级应用时,不重启tomcat,升级过程不影响业务,实现热升级。

二、tomcat官方文档说明

1、tomcat7.0.5 开始支持并行部署(其他博文找的)

2、tomcat7上下文容器(The Context Container)的官网说明地址(如果是tomcat8,把7改为8就可以了):https://tomcat.apache.org/tomcat-7.0-doc/config/context.html

关于并行部署的我觉得比较重要的有以下几点,以下截图是用谷歌翻译的

 

三、实现

1、准备工作

tomcat7.0.109、servlet工程

下载链接:https://pan.baidu.com/s/1owRpBYqNfsdH72KJMvq8vw   提取码:er6u

下载后servlet_demo\out\artifacts\servletTest\下已经生成版本1、2的war包,可直接使用:servletTest##001.war、servletTest##002.war

版本1代码

 版本2代码

2、操作

①、将版本1war包(servletTest##001.war)添加到tomcat/webapps目录下,启动tomcat/bin/startup.bat,启动完成后,webapps下会生成servletTest##001文件夹

②、打开浏览器,输入http://localhost:8080/servletTest/,点击"有项目名称-提交版本1",控制台会打印"版本1post请求",把地址还原为http://localhost:8080/servletTest/,进行下一步操作

③、将版本2war包(servletTest##002.war)添加到tomcat/webapps目录下,tomcat检测到有新的war包时,会解压并部署

 ④、刷新刚刚打开的页面,并点击"有项目名称-提交版本1",出现的结果会跟第②步一样。

⑤、打开一个别的浏览器,并 输入http://localhost:8080/servletTest/ ,会发现页面改变了,点击"有项目名称-提交版本2",控制台会打印"版本2post请求"。这样就实现了多版本并行了。

 ⑥、如果server.xml中配置了undeployOldVersions="true",当所有旧版本会话都结束后,并不再使用时,tomcat会删除以这种方式部署的旧版本,即会删除webapps目录下的servletTest##001文件夹和servletTest##001.war。如果担心误删,可不添加undeployOldVersions="true"配置,但需要等旧版本都不使用时,手动删除。

 

 

⑦、以上是端口后面带项目名称的操作方式,有时候项目会出现不带项目名称的情况,这时候我们只要把servletTest##001.war的项目名称servletTest替换为ROOT即可,官方文档有说明。

 

 四、其他小技巧

问题1:一定要用war包生成文件夹,然后tomcat自动部署吗?

答:可以把文件夹直接放到webapps下。

问题2:有些项目war包(非初始版本)放到webapps时,自动部署会报错,应该怎么解决?

答:可以尝试直接将编译后的文件夹放到webapps中。如果文件夹比较大时,最好把文件夹复制到webapps的同级目录下,再复制到webapps中。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值