关于Spring Cloud Pig
- 基于 Spring Cloud Hoxton 、Spring Boot 2.3、 OAuth2 的 RBAC 权限管理系统
- 基于数据驱动视图的理念封装 element-ui,即使没有 vue 的使用经验也能快速上手
- 提供 lambda 、stream api 、webflux 的生产实践
源码地址:
Gitee | Github | |
---|---|---|
后端代码 | https://gitee.com/log4j/pig | https://github.com/pig-mesh/pig |
前端代码 | https://gitee.com/log4j/pig-ui | https://github.com/pig-mesh/pig-ui |
本文源码地址:
此版本2.9
通过官方仓库fork,修改了一些连接参数。如使用官方仓库,需要自行修改连接参数。
1. 快速安装
SpringCloud Pig 应用已分享到Rainbond应用市场,通过Rainbond社区开源商店即可一键安装。
2. 应用制作流程
首先介绍Pig各个模块:
pig-ui 前端展示[80]
pig
├── pig-auth -- 授权服务提供 [3000]
└── pig-common -- 系统公共模块
├── pig-common-core -- 公共工具类核心包
├── pig-common-datasource -- 动态数据源包
├── pig-common-job -- xxl-job 封装
├── pig-common-log -- 日志服务
├── pig-common-mybatis -- mybatis 扩展封装
├── pig-common-security -- 安全工具类
├── pig-common-swagger -- 接口文档
├── pig-common-sentinel -- sentinel 扩展封装
└── pig-common-test -- oauth2.0 单元测试扩展封装
├── pig-register -- Nacos Server [8848]
├── pig-gateway -- Spring Cloud Gateway网关 [9999]
└── pig-upms -- 通用用户权限管理模块
└── pig-upms-api -- 通用用户权限管理系统公共api模块
└── pig-upms-biz -- 通用用户权限管理系统业务处理模块 [4000]
└── pig-visual
└── pig-monitor -- 服务监控 [5001]
├── pig-codegen -- 图形化代码生成 [5002]
├── pig-sentinel-dashboard -- 流量高可用 [5003]
└── pig-xxl-job-admin -- 分布式定时任务管理台 [5004]
2.1 源码构建Pig后端
本文为了后续连接使用,提前修改了代码中的 application.yml
bootstrap.yml
文件中的连接信息。
pig
├── pig-auth
└── src-main-resources
└── bootstrap.yml
└── server-addr: ${NACOS_HOST:pig-register}:${NACOS_PORT:8848}
# 修改server-addr连接信息为变量 NACOS_HOST
├── pig-register
└── src-main-resources
└── application.yml
└── jdbc:mysql://${MYSQL_HOST:pig-mysql}:${MYSQL_PORT:3306}/${MYSQL_DB:pig_config}?
# 修改jdbc mysql连接信息为变量 MYSQL_HOST
├── pig-gateway
└── src-main-resources
└── bootstrap.yml
└── server-addr: ${NACOS_HOST:pig-register}:${NACOS_PORT:8848}
# 修改server-addr连接信息为变量 NACOS_HOST
└── pig-upms
└── pig-upms-api
└── pig-upms-biz
└── src-main-resources
└── bootstrap.yml
└── server-addr: ${NACOS_HOST:pig-register}:${NACOS_PORT:8848}
# 修改server-addr连接信息为变量 NACOS_HOST
└── pig-visual
└── pig-monitor
└── src-main-resources
└── bootstrap.yml
└── server-addr: ${NACOS_HOST:pig-register}:${NACOS_PORT:8848}
# 修改server-addr连接信息为变量 NACOS_HOST
├── pig-codegen
└── src-main-resources
└── bootstrap.yml
└── server-addr: ${NACOS_HOST:pig-register}:${NACOS_PORT:8848}
# 修改server-addr连接信息为变量 NACOS_HOST
├── pig-sentinel-dashboard
└── pig-xxl-job-admin
└── src-main-resources
└── application.yml
└── jdbc:mysql://${MYSQL_HOST:pig-mysql}:${MYSQL_PORT:3306}/${MYSQL_DB:pig_job}?
# 修改jdbc mysql连接信息为变量 MYSQL_HOST
2.1.1 部署mysql
- 填写仓库地址
https://gitee.com/zhangbigqi/pig.git
,填写子目录 db,确认创建即可。
-
等待部署完毕处于运行中状态即部署完毕。
-
修改组件端口别名为
MYSQL_HOST
并开启对内服务(点击可直接修改),用于后续Pig组件连接MYSQL时直接通过环境变量连接。原理请参考组件间通信。
2.1.2 部署redis
-
基于镜像创建组件
-
填写官方镜像:redis:latest
- 等待部署完毕处于运行中状态即部署完毕。
- 修改组件端口别名为
REDIS_HOST
并开启对内服务(点击可直接修改),用于后续Pig组件连接REDIS
时直接通过环境变量连接。
2.1.3 源码部署后端
- 基于源码构建,参考文档maven多模块源码构建
- 填写仓库地址
https://gitee.com/zhangbigqi/pig.git
- 创建之后会检测出来多模块,进入创建。勾选模块:
组件名称 | 端口 |
---|---|
pig-register | 8848 |
pig-gateway | 9999 |
pig-auth | 3000 |
pig-upms/pig-upms-biz | 4000 |
pig-visual/pig-codegen | 5002 |
pig-visual/pig-monitor | 5001 |
pig-visual/pig-sentinel-dashboard | 5003 |
pig-visual/pig-xxl-job-admin | 5004 |
-
修改各个组件
端口号
,参考以上列表修改组件端口号
。 -
修改组件
端口别名
并开启对内服务(点击可直接修改),用于后续Pig组件连接时直接通过环境变量连接使用。- 组件:pig-register ,组件别名:NACOS_HOST
- 组件:pig-gateway,组件别名:GATEWAY_HOST
- 组件:pig-sentinel-dashboard,组件别名:PIG_SENTINEL_HOST
- 组件:pig-auth,组件别名:PIG_AUTH_HOST
根据下图以此类推
-
需要注意的是 pig-gateway 必须用 oracle jdk ,默认使用openjdk,openjdk会导致
Pig-ui
登陆验证码加载不出来。在 组件 > 构建源 中修改自定义jdk下载地址:
https://buildpack.oss-cn-shanghai.aliyuncs.com/jdk/jdk1.8.0.tgz
-
修改完点击
确认修改
保存,点击构建,重新构建。 -
等待各个组件部署完毕处于运行中状态即部署完毕。
2.1.4 组件依赖关系建立
-
切换到编辑模式,直接拖拉即可。参考文档服务间通信
-
pig-xxl-job-admin
pig-auth
pig-upms-biz
pig-codegen
pig-register
依赖 Mysql -
pig-xxl-job-admin
pig-auth
pig-upms-biz
pig-codegen
pig-register
pig-gateway
pig-monitor
依赖 Redis -
pig-xxl-job-admin
pig-auth
pig-upms-biz
pig-codegen
pig-gateway
pig-monitor
pig-sentinel-dashboard
依赖 pig-register -
pig-xxl-job-admin
pig-auth
pig-upms-biz
pig-codegen
pig-gateway
pig-monitor
pig-register
依赖 pig-sentinel-dashboard
2.2 源码部署Pig-ui
-
基于源码构建,参考文档Nodejs前端
-
填写仓库地址
https://gitee.com/zhangbigqi/pig-ui.git
-
Pig-ui 是Nodejs前端项目,打包后的静态文件放在 Nginx里,通过 Nginx 转发到后端 Pig-Gateway,Nginx配置文件
web.conf
Nginx 配置文件 官方文档提供,参考文档。
- 创建后自行修改端口号 80
- 建议依赖关系,依赖Gateway
等待构建完成访问 ui 即可。
最终效果: