SpringCloud Pig 在Rainbond部署及应用制作

关于Spring Cloud Pig

  • 基于 Spring Cloud Hoxton 、Spring Boot 2.3、 OAuth2 的 RBAC 权限管理系统
  • 基于数据驱动视图的理念封装 element-ui,即使没有 vue 的使用经验也能快速上手
  • 提供 lambda 、stream api 、webflux 的生产实践

源码地址

本文源码地址

此版本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

  1. 填写仓库地址 https://gitee.com/zhangbigqi/pig.git ,填写子目录 db,确认创建即可。

  1. 等待部署完毕处于运行中状态即部署完毕。

  2. 修改组件端口别名为MYSQL_HOST并开启对内服务(点击可直接修改),用于后续Pig组件连接MYSQL时直接通过环境变量连接。

    原理请参考组件间通信

2.1.2 部署redis

  1. 基于镜像创建组件

  2. 填写官方镜像:redis:latest

  1. 等待部署完毕处于运行中状态即部署完毕。
  2. 修改组件端口别名为REDIS_HOST并开启对内服务(点击可直接修改),用于后续Pig组件连接 REDIS 时直接通过环境变量连接。

2.1.3 源码部署后端

  1. 基于源码构建,参考文档maven多模块源码构建
  2. 填写仓库地址 https://gitee.com/zhangbigqi/pig.git

  1. 创建之后会检测出来多模块,进入创建。勾选模块:
组件名称 端口
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
  1. 修改各个组件端口号,参考以上列表修改组件端口号

  2. 修改组件端口别名并开启对内服务(点击可直接修改),用于后续Pig组件连接时直接通过环境变量连接使用。

    • 组件:pig-register ,组件别名:NACOS_HOST
    • 组件:pig-gateway,组件别名:GATEWAY_HOST
    • 组件:pig-sentinel-dashboard,组件别名:PIG_SENTINEL_HOST
    • 组件:pig-auth,组件别名:PIG_AUTH_HOST

    根据下图以此类推

  3. 需要注意的是 pig-gateway 必须用 oracle jdk ,默认使用openjdk,openjdk会导致 Pig-ui 登陆验证码加载不出来。在 组件 > 构建源 中修改自定义jdk下载地址:

https://buildpack.oss-cn-shanghai.aliyuncs.com/jdk/jdk1.8.0.tgz

  1. 修改完点击 确认修改 保存,点击构建,重新构建。

  2. 等待各个组件部署完毕处于运行中状态即部署完毕。

2.1.4 组件依赖关系建立

  1. 切换到编辑模式,直接拖拉即可。参考文档服务间通信

  2. pig-xxl-job-admin pig-auth pig-upms-biz pig-codegen pig-register 依赖 Mysql

  3. pig-xxl-job-admin pig-auth pig-upms-biz pig-codegen pig-register pig-gateway pig-monitor 依赖 Redis

  4. pig-xxl-job-admin pig-auth pig-upms-biz pig-codegen pig-gateway pig-monitor pig-sentinel-dashboard 依赖 pig-register

  5. pig-xxl-job-admin pig-auth pig-upms-biz pig-codegen pig-gateway pig-monitor pig-register 依赖 pig-sentinel-dashboard

2.2 源码部署Pig-ui

  1. 基于源码构建,参考文档Nodejs前端

  2. 填写仓库地址 https://gitee.com/zhangbigqi/pig-ui.git

  3. Pig-ui 是Nodejs前端项目,打包后的静态文件放在 Nginx里,通过 Nginx 转发到后端 Pig-Gateway,Nginx配置文件web.conf

    Nginx 配置文件 官方文档提供,参考文档

  1. 创建后自行修改端口号 80
  2. 建议依赖关系,依赖Gateway

等待构建完成访问 ui 即可。

最终效果: