背景知识: tomcat的并行部署
部署新版本时,一般要先停掉旧的应用,复制新应用后,再启动tomcat,这就造成中间有一段时间 tomcat 是无法对外服务的。
从Tomcat 7.0.23+开始,可以在不关闭 Tomcat 的情况下同时部署相同context path的多个不同版本的web应用。war包的命名格式形如context.war, context##2.war,context##3.war。
当用户访问 http://[url]/context 时,规则如下:
- 如果当前请求没有session信息,则使用最新的war应用版本
- 如果当前请求有session,使用session对应的war应用版本
- 如果当前请求有session信息,却找不到相应的war应用版本,则使用最新的war应用版本(context##3.war)
实现并行部署
- pom.xml 中配置生成的 war 包加时间戳:
|
|
在项目根目录下执行命令
mvn package
生成 war 包,如 portal##20140922.war。
2. 部署
将 war 包上传到/anyfish_web/war/warHub 下后,执行部署脚本 parallelDeploy.sh (脚本内容见下)
部署脚本
并行部署脚本 parallelDeploy.sh 的功能:搜寻指定目录下最新的 war 包,然后依 Tomcat 格式,在 $TOMCAT_HOME/conf/Catalina/localhost 创建配置文件(如 portal##20140922.xml),以使 Tomcat 感知并部署此 web 工程。
|
|