部署 SpringCloudPig 微服务
本文将指导您如何在 Rainbond 平台上一键部署完整的 Spring Cloud Pig 微服务应用。通过本教程,您将体验 Rainbond 强大的微服务治理能力和便捷的部署流程。
在本教程中,我们将部署一个完整的 Spring Cloud Pig 应用,包括:
- 基础设施:MySQL 数据库、Redis 缓存
- 后端服务:7 个 Spring Cloud 微服务组件
- 前端界面:基于 Vue 的管理界面
前提
- 已安装的 Rainbond 快速安装 平台
- 资源最低要求:
4C 16G 100G
部署步骤
本教程基于 Spring Cloud Pig jdk17 分支进行部署。
一、部署 MySQL 数据库
通过源码方式创建 MySQL 组件
1.1 进入目标团队 → 新建应用 → 从源码构建 → 源码
- 组件名称:自定义(例如:mysql)
- 组件英文名称:自定义
- 仓库地址:
https://gitee.com/rainbond/pig.git - 子目录路径:
db - 代码分支:
v3.8.2
1.2 配置 MySQL 组件类型
- 修改组件部署类型为 有状态服务(Statefulset类型)
- 下一步
1.3 配置组件端口
- 点击默认的 3306 端口,修改端口别名为
MYSQL - 确保打开该端口的对内服务开关
1.4 配置组件环境变量
- 添加环境变量:
- 变量名:
MYSQL_ROOT_PASSWORD - 变量值:
root
- 变量名:
- 添加环境变量:
- 变量名:
MYSQL_ROOT_HOST - 变量值:
%
- 变量名:
1.5 配置组件存储
- 点击 存储 标签页
- 添加存储卷:
- 存储卷名称:
mysql-data - 挂载路径:
/var/lib/mysql - 存储卷类型:本地存储
- 存储卷名称:
1.6 构建组件
- 等待组件构建完成变为 运行中 状态
1.7 验证 MySQL 组件
- 进入 Web 终端
mysql -uroot -proot # 连接 MySQL 数据库
show databases; # 查看数据库列表
use pig; # 切换到 pig 数据库
show tables; # 查看表列表
select * from sys_user; # 查看用户表数据
exit; # 退 出 MySQL 客户端
二、部署 Redis
2.1 从应用商店安装 Redis
- 进入目标团队 → 添加组件 → 从应用商店安装 → 开源应用商店
- 在搜索框中输入
Redis安装5.0.7版本
2.2 确认 Redis 组件状态
安装完成后,确认 Redis 组件已正常运行:
- 查看 Redis 组件状态是否为 运行中
- 进入组件详情页 → Web 终端,连接 Redis 客户端
$ redis-cli -h ${REDIS_HOST} -p ${REDIS_PORT}
gr72321b:6379> set test test
OK
三、部署 Pig 后端服务
3.1 通过源码方式创建 Pig 后端服务组件
通过源码方式创建 Pig 后端组件,填写以下信息:
- 组 件名称:自定义
- 组件英文名称:自定义
- 仓库地址:
https://gitee.com/rainbond/pig.git - 代码分支:
v3.8.2
3.2 配置多模块构建
系统会自动检测出多个微服务模块,在多模块构建页面:
- 选择以下模块并创建:
- pig-register (Nacos 注册中心)
- pig-gateway (网关服务)
- pig-auth (认证服务)
- pig-upms/pig-upms-biz (用户权限管理)
- pig-visual/pig-codegen (代码生成器)
- pig-visual/pig-monitor (监控服务)
- pig-visual/pig-quartz (定时任务)
以上模块在创建后都需要修改构建源信息,请在点击 确认构建 按钮前,取消 并构建启动 选项,否则会自动构建
3.3 修改构建源 JDK 版本
为每个组件修改构建源 OpenJDK 版本为 17:
- 进入组件详情页 → 构建源 → 源码构建参数设置
- 修改 OpenJDK 版本为
17 - 确认修改
其他配置项保持默认
3.4 配置微服务端口和别名
为每个微服务组件配置正确的端口:
- 进入每个组件的端口设置
- 删除默认生成的端口
- 添加每个组件所需 的专用端口,并设置端口别名以及打开对内端口服务:
| 组件 | 端口 | 端口别名 |
|---|---|---|
| pig-register | 8848, 9848, 9849 | 8848端口别名: NACOS |
| pig-gateway | 9999 | 端口别名: GATEWAY |
| pig-auth | 3000 | - |
| pig-upms-biz | 4000 | - |
| pig-codegen | 5002 | - |
| pig-monitor | 5001 | - |
| pig-quartz | 5007 | - |
3.5 建立组件依赖关系
使用 Rainbond 的可视化编排功能建立组件之间的依赖关系:
- 进入应用视图 → 切换到 编排模式
- 按照如下所示,拖动连接各组件,建立依赖关系:
- 配置
pig-register组件依赖MySQL组件
- 配置所有微服务组件依赖
MySQL、Redis、pig-register组件
通过 Rainbond 的依赖关系设置,环境变量会自动注入到依赖服务中,极大 简化了微服务间的配置管理。
3.6 构建组件
- 进入应用视图 → 列表 → 选择所有微服务组件,点击 批量构建 按钮
- 构建成功后,进入组件详情页,点击 启动 按钮,启动组件
四、部署 Pig-UI 前端
4.1 创建前端组件
通过源码方式创建前端组件,填写以下信息:
- 组件名称:自定义(例如:pig-ui)
- 组件英文名称:自定义
- 仓库地址:
https://gitee.com/rainbond/pig-ui.git - 代码分支:
v3.8.2
4.2 配置构建方式
- 代码语言:
Node.js - 框架:
Vite
4.3 配置 Node 版本
- 配置 Node 版本为
18.20.8
4.4 添加配置文件
- 添加配置文件
- 配置文件名称:自定义(例如:nginx-config)
- 配置文件路径:
/workspace/nginx.conf - 配置文件内容:
worker_processes 1;
daemon off;
error_log stderr;
events {
worker_connections 1024;
}
http {
client_body_temp_path /tmp/client_body_temp;
proxy_temp_path /tmp/proxy_temp;
fastcgi_temp_path /tmp/fastcgi_temp;
charset utf-8;
types {
text/html html htm shtml;
text/css css;
text/xml xml;
image/gif gif;
image/jpeg jpeg jpg;
application/javascript js;
application/atom+xml atom;
application/rss+xml rss;
font/ttf ttf;
font/woff woff;
font/woff2 woff2;
text/mathml mml;
text/plain txt;
text/vnd.sun.j2me.app-descriptor jad;
text/vnd.wap.wml wml;
text/x-component htc;
text/cache-manifest manifest;
image/png png;
image/tiff tif tiff;
image/vnd.wap.wbmp wbmp;
image/x-icon ico;
image/x-jng jng;
image/x-ms-bmp bmp;
image/svg+xml svg svgz;
image/webp webp;
application/java-archive jar war ear;
application/mac-binhex40 hqx;
application/msword doc;
application/pdf pdf;
application/postscript ps eps ai;
application/rtf rtf;
application/vnd.ms-excel xls;
application/vnd.ms-powerpoint ppt;
application/vnd.wap.wmlc wmlc;
application/vnd.google-earth.kml+xml kml;
application/vnd.google-earth.kmz kmz;
application/x-7z-compressed 7z;
application/x-cocoa cco;
application/x-java-archive-diff jardiff;
application/x-java-jnlp-file jnlp;
application/x-makeself run;
application/x-perl pl pm;
application/x-pilot prc pdb;
application/x-rar-compressed rar;
application/x-redhat-package-manager rpm;
application/x-sea sea;
application/x-shockwave-flash swf;
application/x-stuffit sit;
application/x-tcl tcl tk;
application/x-x509-ca-cert der pem crt;
application/x-xpinstall xpi;
application/xhtml+xml xhtml;
application/zip zip;
application/octet-stream bin exe dll;
application/octet-stream deb;
application/octet-stream dmg;
application/octet-stream eot;
application/octet-stream iso img;
application/octet-stream msi msp msm;
application/json json;
audio/midi mid midi kar;
audio/mpeg mp3;
audio/ogg ogg;
audio/x-m4a m4a;
audio/x-realaudio ra;
video/3gpp 3gpp 3gp;
video/mp4 mp4;
video/mpeg mpeg mpg;
video/quicktime mov;
video/webm webm;
video/x-flv flv;
video/x-m4v m4v;
video/x-mng mng;
video/x-ms-asf asx asf;
video/x-ms-wmv wmv;
video/x-msvideo avi;
}
access_log /dev/stdout;
default_type application/octet-stream;
sendfile on;
tcp_nopush on;
gzip on;
gzip_static always;
gzip_proxied any;
gzip_min_length 1100;
gzip_types
text/plain
text/css
text/js
text/xml
text/javascript
application/javascript
application/x-javascript
application/json
application/xml
application/xml+rss
font/eot
font/otf
font/ttf
image/svg+xml;
gzip_comp_level 6;
gzip_buffers 16 8k;
gzip_vary on;
gunzip on;
gzip_disable "msie6";
keepalive_timeout 30;
server {
listen 8080 default_server;
server_name _;
root /workspace/dist;
# 注意维护新增微服务,gateway 路由前缀
location ^~/api/ {
proxy_pass http://${GATEWAY_HOST}:9999/; #注意/后缀
proxy_connect_timeout 60s;
proxy_read_timeout 120s;
proxy_send_timeout 120s;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto http;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_set_header Host $http_host;
proxy_set_header from "";
}
# 屏蔽所有敏感路径,不用改代码
location ~* ^/(actuator|swagger-ui|v3/api-docs|swagger-resources|webjars|doc.html) {
return 403; # 禁止访问
}
}
}
4.5 确认构建组件
4.6 配置依赖关系
- 进入组件应用视图 → 切换到 编排模式
- 将
pig-ui组件连接到pig-gateway组件,建立依赖关系
- 将
- 更新
pig-ui组件,完成部署
五、访问和验证
获取访问地址
- 进入
pig-ui组件详情页 - 在端口信息中找到对外服务的访问地址
- 点击访问地址或复制到浏览器打开

最终部署效果
成功部署后,您将得到一个完整的微服务应用,如下图所示:

常见问题排查
Q1: 前端访问后端服务报错?
检查 Nginx 配置文件中的代理配置,确保网关地址和端口正确。
Q2: 数据库连接失败?
检查 Nacos 中的数据库配置,确保 MySQL 组件已正常启动,且依赖关系已正确建立。