微服务工程
本章作为入门文档,仅给出了如何快速搭建 “橙单企业版微服务工程” 的基本步骤。如想深入了解更多操作细节,可参考开发文档中的其他章节,具体如下。
# 基础要求
JDK = 1.8.x
Maven >= 3.6
MySQL >= 8.0
NodeJs >= 12.x <= 14.X
NPM >= 6.x
Docker >= 19.x
2
3
4
5
6
# 开发环境
- 前端推荐使用 VSCode 作为开发环境,npm + webpack 为打包工具。
- 后台推荐使用 IntelliJ IDEA 作为开发环境,Maven 为打包工具。
- 必须安装的 IDE 插件包括,Lombok Plugin、Maven Helper。
# 工程导入
当前文档仅给出 IntelliJ IDEA 和 VSCode 的工程导入说明。
# 后端工程
- 解压下载后的压缩文件 DemoMulti.zip,admin-project/DemoMulti 目录为后端工程目录。
- 打开 IntelliJ IDEA,依次选择菜单 File -> Open,选中下图红框圈住的目录将工程导入。第一次导入时会相对较慢,需要将项目依赖的 jar 包,通过 Maven 拉取并下载到本地仓库。
- 导入成功后,如下图所示,打开停靠在 IDE 最右侧的 Maven 窗格,双击执行 maven install 命令,如出现任何编译期问题,请及时反馈。
- 工程目录结构说明,请参考开发文档 开发部署章节的目录结构小节。
# 前端工程
- 解压下载后的压缩文件 DemoMulti.zip,web-project/DemoMulti 目录为前端工程目录。
- 打开 VSCode,依次选择菜单 “文件 -> 打开文件夹”,选中解压后的前端工程目录。
- 前端目录结构说明,请参考 前端目录结构 。
# 数据库初始化
- 执行 zz-resource/db-scripts/ 目录下,除 rollback-upms-data-script.sql 之外的其余 SQL 文件。其中 upms-script.sql 要最先执行。
- init-upms-data-script.sql 文件,包含全部在橙单生成器中配置的表单接口权限数据。多次生成时,相同权限数据的主键Id不变。
- rollback-upms-data-script.sql 文件,仅仅删除在 init-upms-data-script.sql 脚本中初始化的数据,用户自己手动添加的数据不会被删除。注意,该脚本是数据回滚脚本,不应在初始化时执行。
- 其余脚本的具体功能,可参考 开发部署章节的数据初始化小节。
# 环境准备
在搭建本地开发调试环境之前,请先阅读后端工程目录下的 README.md 文件,以确定哪些组件为该工程运行时所需的必选组件。这里我们强烈推荐 docker-compose 的一键启停方式。
在日常开发调试阶段,为了尽可能节省系统资源,仅使用 docker-compose.yml 即可。
# 在生成后工程目录下,进入docker-compose脚本所在的子目录。
cd zz-resource/docker-files/
# 启动和停止带有基础服务中间件的docker-compose.yml文件 (默认使用的 docke-compose.yml)
docker-compose up -d
# 彻底终止容器
docker-compose down
# 在第一次启动之后,可以考虑每次执行下面的命令启动和停止容器。
docker-compose start
docker-compose stop
# 启动和停止带有xxl-job服务的docker-compose-job.yml文件
docker-compose -f docker-compose-job.yml up -d
docker-compose -f docker-compose-job.yml down
# 启动和停止带有所有服务中间件的docker-compose-full.yml文件,包括xxl-job、elk、grafana + prometheus等。
docker-compose -f docker-compose-full.yml up -d
docker-compose -f docker-compose-full.yml down
2
3
4
5
6
7
8
9
10
11
12
13
14
15
如果依赖了 XXL-Job,需要在 docker-compose 脚本中,修改 XXL-Job 所使用的数据库主机地址、用户名和密码,详见下图注释。
# 服务配置
在橙单生成器中,我们支持两种类型的微服务配置中心,分别为 Nacos 和 Consul,服务配置的具体方式,可参考开发文档中的如下章节。
# 中间件迁移
如果您是第一次启动 “橙单企业版工程”,对于 Redis、Nacos、Seata、Kafka 等第三方中间件服务,我们强烈建议您尽量使用生成后的默认配置。如确有迁移需求,可参考开发文档 生产部署章节的中间件迁移小节。
在中间件迁移的过程中,会导致上述配置文件的变化,具体也可参考 “生产部署章节的中间件迁移小节”。
# 单点登录配置
如果前端工程和后台工程不在同一主机内运行,如后台服务部署在 A 主机,而前端工程则运行于 B 主机,那么与 uaa 相关的配置就会有所变化,具体操作可参考开发文档 单点登录章节的 uaa-auth 注意事项小节。
uaa-auth 作为统一用户身份验证服务,为必启动服务。uaa-admin 是 uaa 的后台管理服务,提供了 uaa 应用接入和操作员管理等基本功能,开发调试过程中无需启动该服务。
# 系统启动
当前文档仅给出 IntelliJ IDEA 和 VSCode 的工程启动说明。
# 后台编译
第一次启动,推荐保持默认配置,无需任何修改。
工程目录下的 pom.xml 文件中,包含了与部署环境相关的配置变量。
切换默认编译环境,可以将下图中的 activeByDefault 标签放到其他环境中,如下图的 test 环境。
命令行打包的环境切换。
# 默认环境打包
mvn clean install
# 指定环境打包,比如指定生成环境
mvn clean install -P prod
2
3
4
# 后端服务
这里仅以 upms 服务为例。在开发环境中配置启动项,下图为 IntelliJ IDEA 中的配置截图,配置完成后点击 Debug/Run 按钮即可启动。更多细节可参考开发文档 系统启动章节的应用服务启动小节。
对于定时任务后台服务 application-job/xxx-job,启动之前还需要配置 “定时任务框架” 的管理控制台,具体操作可参考开发文档 系统启动章节的Job控制台配置小节。
# 前端工程
- 导入成功后,在工程目录下找到 src -> core -> config 目录,设置工程的基本配置。其中 development.js 是开发环境的配置,production.js 是生产环境的配置。
module.exports = {
// 后台地址
baseUrl: 'http://localhost:8082/',
// 工程名称
projectName: '橙单生成器演示项目'
}
2
3
4
5
6
- 修改项目配置后,可在导入的文件夹上点击右键,然后在弹出的菜单中点击 “在终端中打开”。
- 在打开的终端中执行以下命令,安装工程所需依赖。npm 较慢时,可以使用淘宝的镜像,cnpm 或者 yarn 等来安装。
npm install
- 安装完成后,执行以下命令运行工程。
npm run dev
- 正常启动后,可点击链接 (http://localhost:8085/) 访问前端工程的登录页面,如下图所示。