1、服务打包方式
springboot服务统一打包成一个可执行的jar包,所有的依赖包集成到一个jar文件。
- 在服务模块的pom文件中配置打包插件
- 实现maven打包命令
成功执行命令后,target文件加会生产package-name.jar和package-name.jar.original两个文件,jar为目标可执行文件,original为原始jar包,我们需要的是jar文件。
#此命令在模块pom同级目录执行
mvn package spring-boot:repackage
2、发布到目标服务器
- 上传jar文件到目标服务器
用应用发布用户(非root用户)在目标服务器建立发布目录结构,并上传jar文件。
参考目录结构如下:
service-name.conf 文件配置
此文件需要放置于jar包同级目录,名称保持与jar包一致,主要是设置jar启动参数和环境变量。
参考示例:stat-admin.conf
#JVM参数
JAVA_OPTS=-Xmx1024M
#传递到jar的应用参数
RUN_ARGS="--server.port=9911"
#环境变量,当服务作为systed service启动时,系统用户环境变量将会失效,因此需要在此处配置环境变量
JAVA_HOME=/usr/local/jdk-11.0.10/
3、配置systemd方式启动服务
以下命令都需要root用户执行。
- 编辑service-name.service文件
[Unit] Description=stat-admin
After=syslog.target
[Service]
#实际启动服务的用户,为服务发布用户
User=whrt
#也可以在此处配置环境变量
#Environment="JAVA_HOME=/usr/local/jdk-11.0.10"
ExecStart=/mydata/services/stat-admin/stat-admin.jar
SuccessExitStatus=143
[Install] WantedBy=multi-user.target
新增service配置后,需要执行服务重新加载命令
systemctl daemon-reload
设置开机启动(非必需,根据业务实际需要决定是否需要开机启动)
systemctl enable service-name.service
关闭开机启动
systemctl enable service-name.service
启动服务
systemctl start service-name.service
关闭服务
systemctl stop service-name.service
查看服务状态
systemctl status service-name.service
保险起见,服务启动和停止后,同样需要用ps -ef|grep 来查看进程。