关键词

使用springboot打包成zip部署,并实现优雅停机

使用springboot打包成zip部署可以方便地将应用程序部署到任何环境中。配合优雅停机功能可以在应用程序需要停止运行时,平滑地关闭运行中的所有任务,确保应用程序不会因为意外关机而出现问题。下面是实现这一目标的完整攻略。

准备工作

在开始之前,需要先准备好以下环境和工具:
- JDK 1.8 或以上版本
- Maven 3.3 或以上版本
- SpringBoot 2.0 或以上版本
- 命令行终端

打包成zip

首先,可以在SpringBoot项目根目录下运行以下命令来构建打包应用程序:

mvn clean package

执行完毕后,将生成 jar 包,通过以下命令把jar包打包成zip文件

zip -r xxx.zip xxx-0.0.1-SNAPSHOT.jar

其中,xxx-0.0.1-SNAPSHOT.jar是项目打包后生成的jar文件名,xxx是应用程序的名称,可根据实际情况进行替换。

部署和启动

接下来,可以将打包好的zip文件拷贝到目标服务器上,并使用以下命令解压缩:

unzip xxx.zip -d xxx

其中,第一个xxx是zip文件名,第二个xxx是解压缩后的目录名称,可自行指定。

解压缩后,进入解压缩后的目录,运行以下命令启动应用程序:

nohup java -jar xxx-0.0.1-SNAPSHOT.jar > /dev/null &

其中,nohup&都是为了让SpringBoot程序在后台运行,不会因为关闭终端而停止运行。/dev/null是用于重定向标准输出的特殊文件,可以将应用程序的输出信息输出到黑洞,并将控制台输出释放给其他程序或进程。

优雅停机

为了实现优雅停机,可以在SpringBoot项目的application.properties文件中配置以下内容:

server.shutdown=graceful

这样,在应用程序收到关闭信号后,Spring Boot会尝试完成正在运行的任务,并等待所有任务完成后再优雅地关闭。此配置只适用于SpringBoot 2.3之后的版本。

如果使用的是Spring Boot 2.2或更早的版本,则可以使用以下配置:

spring.lifecycle.timeout-per-shutdown-phase=20s

这个配置会让Spring Boot在关闭前等待20秒,以确保所有正在运行的任务顺利完成。如果这个时间段内任务未完成,则Spring Boot会强制关闭应用程序。

事实上,为了更好地应对复杂的场景和实际需求,Spring Boot还提供了许多其他可定制和扩展的管理配置和功能,可以根据实际情况进行选择和配置。

示例一

以一个使用SpringBoot框架实现的档案管理系统为例,在服务器上使用如下命令将项目打包成zip

zip -r archive.zip archive-0.0.1-SNAPSHOT.jar

其中,archive-0.0.1-SNAPSHOT.jar是打包后生成的jar文件,archive是项目名称,可自行更改。

拷贝压缩好的zip文件到目标服务器中,使用以下命令解压文件:

unzip archive.zip -d archive

其中,第一个archive是zip文件名,第二个archive是解压缩后的目录名称,可自行指定。

然后,运行以下命令启动应用程序:

nohup java -jar archive-0.0.1-SNAPSHOT.jar > /dev/null &

注意,在执行上述命令时,需要先进入存放jar包的目录下,否则会提示文件找不到。

最后,在浏览器中输入http://服务器地址:8080即可访问部署成功的档案管理系统。

示例二

以一个使用SpringBoot框架实现的工作流引擎为例,在服务器上使用如下命令将项目打包成zip

zip -r workflow.zip workflow-0.0.1-SNAPSHOT.jar

其中,workflow-0.0.1-SNAPSHOT.jar是打包后生成的jar文件,workflow是项目名称,可自行更改。

拷贝压缩好的zip文件到目标服务器中,使用以下命令解压文件:

unzip workflow.zip -d workflow

其中,第一个workflow是zip文件名,第二个workflow是解压缩后的目录名称,可自行指定。

然后,运行以下命令启动应用程序:

nohup java -jar -Dspring.profiles.active=dev workflow-0.0.1-SNAPSHOT.jar > /dev/null &

注意,在执行上述命令时,需要先进入存放jar包的目录下,否则会提示文件找不到。 -Dspring.profiles.active=dev指定了SpringBoot的运行环境为dev环境。

最后,在浏览器中输入http://服务器地址:8080即可访问部署成功的工作流引擎。以上就是使用SpringBoot打包成zip部署,以及实现优雅停机功能的完整攻略。

本文链接:http://task.lmcjl.com/news/13143.html

展开阅读全文