目录
1. 部署形式
一般我们在后端开发中 , 常常将整个 springboot 项目打包成 war 包 , 或是打包成一个 jar 包 , 再将其使用 ssh 工具传输至服务器中 , 执行即可。
但是 springcloud 项目属于微服务框架 , 是由一个父工程下包括好几个微服务组成 , 每个微服务都需要分别执行 , 无法直接将整个项目进行打包 , 然后像 springboot 一样直接执行。所以我们需要分别打包各微服务 , 并将父工程中携带的信息和依赖也打包进子项目中 , 再以 jar 包形式进行部署 , 分别运行各微服务。
2.Alibaba Cloud Toolkit 的使用
我们部署一个微服务 , 一般要用 xftp 把前后端所在文件夹打开 , 把 jar、dist 备份再上传 , 然后再打开 xshell 把前后端 kill 掉 , 然后再敲命令重新启动前后端 …… 流程较为繁杂 , 如果对 Linux 系统不熟悉 , 或者不会使用 ssh 工具的 , 将会十分麻烦。
Alibaba Cloud Toolkit 是阿里云针对 IDE 平台为开发者提供的一款插件 , 用于帮助开发者高效开发并部署适合在云端运行的应用 , 通过图形配置的方式连接到云端部署环境并将应用程序快速部署到云端。
下面就对其使用进行一次演示 :
首先 , 我们需要在 IDE 的下载该插件 :
下载完成后 , 我们可以在 tools 中看到该插件 , 点开它 , 我们首先需要填写一些服务器相关的信息 :
填写你的主机 Ip, 链接的端口号 , 用户名及密码。
添加成功后 , 我们就可以进行项目的上传 :
又或者 , 我们点开是这种形式的 :
3. 一个 springcloud 项目的部署
在填写完服务器信息后 , 下面 , 我们就进行一次 springcloud 项目的部署。
首先 , 在运行 Alibaba Cloud Toolkit 前我们需要点击 Advanced 填写一些命令 :
都是 maven 命令 , 其中 clean install 代表把父工程的信息打包保存进子微服务中 ,clean package 代表把微服务打包为 jar 包。
运行 Alibaba Cloud Toolkit, 即可远程把打包好的 jar 包远程传输进服务器中 :
需要注意的是 , 我们打包微服务之前 , 需要在微服务的 Pom.xml 文件中做对应的配置 :
<build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> <version>2.1.0.RELEASE</version> <configuration> <fork>true</fork> <addResources>true</addResources> <!-- 指定该 Main Class 为全局的唯一入口 --> <mainClass>com.seven.springcloud.EurekaMain</mainClass> </configuration> <executions> <execution> <goals> <goal>repackage</goal><!-- 可以把依赖的包都打包到生成的 Jar 包中 --> </goals> </execution> </executions> </plugin> </plugins> </build>
在这里我们需要指定微服务运行的主类 , 指定把微服务的依赖也一同打包进 jar 包中。
4. 运行 jar 包
在打包完之后 , 我们就可以在终端运行我们的微服务了。
我们点开 Alibaba Cloud Toolkit 中的 Alibaba cloud view, 我们可以在 IDE 直接连接终端 :
进入对应的文件夹下 , 输入 java -jar 你的 jar 包名称 命令 ,jar 包就开始运行啦 :
于是我们就部署成功一个微服务了 , 需要部署其他微服务 , 同理 , 然后我们根据需求 , 开启微服务即可。
5. 后台运行
由于一些服务器不稳定 , 我们使用 java -jar 命令运行微服务时 , 有可能微服务运行一段时间后就挂掉了 , 所以我们可以指定微服务后台运行。
nohup java -jar 你的 jar 包名称 > 日志输出的文件名 &
比如;nohup java -jar cloud-user-manage-1.0-SNAPSHOT.jar > /opt/black_recognize/jre/log/cloud-user-manage.log &
即指定了 cloud-user-manage-1.0-SNAPSHOT.jar 微服务在后台运行 , 输出日志在 /opt/black_recognize/jre/log/cloud-user-manage.log 文件中。
而关于另一种后台运行方式 , 才采用 dockerfile 形式进行 , 具体可参考 关于如何将一个 springboot 项目部署至服务器——docker 版_tang_seven 的博客 -CSDN 博客
原文链接:https://blog.csdn.net/tang_seven/article/details/125412429