java web项目war包自动升级部署方案

本文介绍了一种Java Web项目在单个Tomcat环境下的自动升级部署方案,包括检查更新、下载WAR包、停启Tomcat、清理旧包以及通过shell脚本执行升级过程。该方案简化了传统运维中的手动操作,但仍存在不适用于多Tomcat或负载均衡环境的问题。
摘要由CSDN通过智能技术生成

前言

之前,我们公司部署以及升级都是由运维去管理的,联想到很多开源平台都支持自动升级,索性我也做个自动升级war的功能。
这里没有用docker镜像发包,灰度发包等,只适用于单个tomcat的部署环境,支持docker单个tomcat容器。

分析

先简单分析下war包自动升级流程:

  1. 检查是否需要更新。
  2. 下载更新的war包到服务器临时目录。(如后台上传则无需1,2步骤)
  3. 停止tomcat
  4. 清理tomcat下,webapps的war包解压目录、war包。
  5. 启动tomcat

1,2步骤中没有什么坑,主要是3,4,5步骤,如果用java代码去执行,当tomcat服务关闭时,war包内的代码将停止,所以除非单独写个java程序跑才能继续执行下面代码。但又觉得这种方式麻烦,对环境依赖太高,最终采用shell脚本去执行3,4,5步骤,而java-web去调用这个shell脚本即可。

实施

检查更新

这一步比较简单,这里直接发送一个请求,带上版本号,如:
a.com/checkVersio…
返回是否需要更新,以及更新地址:

{
    "NeedUpdate": true,
    "downUrl": "http://a.com/1.0.war"
}复制代码

这里使用httpclient去调用接口:

/*使用时注意字符集 "GBK""UTF-8"*/
public static String visitPost(String urlStr, String code) {
        try{
            URL url = new URL(urlStr);
            HttpURLConnection con = (HttpURLConnection)url.openConnection();
            con.setRequestMethod("GET
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值