使用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部署,以及实现优雅停机功能的完整攻略。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:使用springboot打包成zip部署,并实现优雅停机 - Python技术站