打包部署一套微服务项目,有要的带走

  • 一、项目分析

  • 二、打包项目

    • 2.1、父 pom 文件

    • 2.2、子 pom 文件

    • 2.3、执行打包

  • 三、部署项目

随着 Spring Boot 和 Spring Cloud 的流行,越来越多的公司和企业开始使用微服务分布式架构。微服务架构的好处是可以将一个庞大的应用拆分为多个小而独立的服务,每个服务都可以独立部署和升级。这样可以提高开发效率和系统的可维护性。

在实际项目中,我们面对着庞大的代码库和复杂的业务逻辑,如何部署和管理微服务项目是一个非常重要的问题。下面,我将介绍一些通用的微服务项目部署方式,帮助大家更好地部署自己的项目。

 

一、项目分析

在打包部署之前我们先来简单的分析一下项目结构,这里我拿出最近部署的一个项目作为例子,该项目使用的阿里的 Nacos 服务,没有使用 Eureka 服务注册中心,所以少了一个模块。

这个项目文件里包含了前端和后端的代码,还有一些文本文件;这里我们不关心与后端无关的,先列举出后端模块(图中可以看出文件夹右下角带有蓝色正方形的就是后端模块):

  • business: 业务模块,提供主要的业务逻辑接口

  • file: 文件模块,提供文件的上传下载接口

  • gateway: 网关模块,请求的必经之路,负责拦截请求

  • generator: 代码生成模块,负责生成重复性代码

  • server: 一些实体类、工具类、枚举类等

  • system: 系统模块,提供用户相关的接口

这些模块中只有部分需要打包,最简单的判别方法就是,有 主启动类 的模块需要打包,其余的不需要打包。

 

上图所示,business 模块就需要打包,同样有启动类的模块还有:file、gateway、system。

所指本项目只有这四个模块需要打包。

二、打包项目

打包项目肯定是使用最流行的 maven 了,不过在执行 install 之前需要先修改配置文件,确保和下面的一样:

2.1、父 pom 文件

 

  • 父 pom 中一定要指定 maven-compiler-plugin 和 maven-surefire-plugin 插件。

  • <packaging>pom</packaging> 打包类型写 pom 包。

2.2、子 pom 文件

这里以 business 模块的 pom 文件为例,其余的模块也类似。

 

注意:

  • 子 pom 文件中一定要指定 spring-boot-maven-plugin 插件和主启动类的 全类名 。

  • <packaging>jar</packaging> 打包类型写 Jar 包。

其中 <goal>repackage</goal>,我写到了他会将依赖到的包都打进去,具体如下图:

 

他会将依赖到的包都放到 BOOT-INF 文件夹下面的 lib 中:

  • 优点是后续不用担心依赖找不到的问题,高可移植性;

  • 缺点是会导致 jar 包体积很大,例图中的包有 60M 大小,如果不将依赖放进去以 KB 为单位。

2.3、执行打包

然后我们通过 IDEA 自带的 maven 插件打包就行了,或者键入 “ mvn package ” 命令。

 

注意这里只需要点击父工程的 package 命令,不需要管其他的子工程,因为打包父工程会自动打包所有的子模块,我们之前设定了父工程的打包方式为 pom。

打包完成以后的 jar 包会出现在模块各自的 target 目录下。

进入到该目录下,输入命令 java -jar business-1.0.0.jar 即可启动项目。

三、部署项目

打包好了以后就可以部署了,我这里是部署到了 windows server 2012 系统上面了,该系统已经有 java 的环境,所以直接远程连接,将 jar 文件复制过去,然后使用 java 命令启动即可。Linux 系统也是一样的,可以使用 XShell 工具先将文件传到服务器上面,再启动。

由于该项目为前后端分离项目,下面介绍一下前端部分的打包部署步骤。

 

前端我使用了多环境配置,这里一直用的是 .env.dev 文件,看一下文件内容。 

这里的 ip 地址要填写部署的服务器地址,端口为网关模块的地址。

在 package.json 文件中定义脚本文件,末尾加上参数 --mode dev,代表以 dev 模式启动:

使用命令执行以后,就会打包前端项目,在根目录下生成 dist 目录,我们要做的就是拿走 dist 目录,放到服务器上面。

然后怎么执行呢,这里有多种方式,最方便的是使用 nginx 启动,最简单的使用 http-server 启动,这里就以后者为例。

 

 窗口中会打印出访问地址,复制到浏览器中即可访问页面,届时前后端项目都已经完成部署。

 

 

要将多个Spring Boot微服务打包部署,你可以按照以下步骤进行操作: 1. 创建多个Spring Boot项目:每个微服务都应该是一个独立的Spring Boot项目。你可以使用Spring Initializr(https://start.spring.io/)来创建这些项目,确保每个项目都有自己的唯一标识。 2. 开发和测试微服务:在每个项目中,根据需求实现相应的业务逻辑和功能。确保每个微服务都可以独立运行并通过测试。 3. 配置构建工具:对于每个微服务项目,你可以选择使用Maven或Gradle来进行构建。在项目根目录下的构建工具配置文件中,你需要指定项目的依赖和构建配置。 4. 打包微服务:使用构建工具执行打包命令,将每个微服务项目打包为可执行的jar文件。例如,对于Maven项目,可以使用`mvn package`命令进行打包。 5. 部署微服务:将打包好的jar文件部署到目标环境中。你可以选择不同的部署方式,例如使用Docker容器、传统的服务器部署或者云平台。 6. 配置和管理微服务:对于每个微服务,你需要配置其所需的环境变量、数据库连接、端口等信息。你还可以使用配置中心、服务注册中心等工具来管理微服务的配置和发现。 7. 启动微服务:在目标环境中,使用命令行或相关工具启动每个微服务。确保每个微服务都能够独立运行,并且它们之间可以相互通信。 8. 监控和管理微服务:为了确保微服务的稳定性和性能,你可以使用监控工具来监控微服务的运行状态和性能指标。你还可以使用管理工具来进行部署、扩容、升级等操作。 通过以上步骤,你可以成功地打包部署多个Spring Boot微服务。请确保在部署之前进行充分的测试,并且合理配置和管理微服务,以确保其可靠性和可扩展性。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

永钊源码

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值