dataplatform-cloud-parent 是一个基于 Spring Cloud Alibaba + Spring Cloud Gateway + Spring Boot + Dubbo + Redis + Sa-Token + Mybatis-Plus + Vue3 的微服务权限管理系统。
主要特性:
- 微服务架构: 基于 Spring Cloud Alibaba,支持 Nacos 作为注册和配置中心。
- 服务网关: 使用 Spring Cloud Gateway 进行统一的请求路由和过滤。
- 认证授权: 采用 Sa-Token,一个轻量级、功能强大的 Java 权限认证框架。
- 持久层: 使用 Mybatis-Plus,简化 CRUD 操作。
- 前端: 基于 Vue3, Vite, Element-Plus, TypeScript。
- 服务间通信: 支持 Dubbo 进行 RPC 调用。
graph TB
subgraph "前端层"
UI[Vue3 前端应用<br/>dataplatform-cloud-ui]
end
subgraph "网关层"
Gateway[Spring Cloud Gateway<br/>dataplatform-cloud-gateway]
end
subgraph "认证层"
Auth[认证服务<br/>dataplatform-cloud-auth<br/>Sa-Token]
end
subgraph "业务服务层"
System[系统服务<br/>dataplatform-cloud-system]
Serv[系统管理<br/>dataplatform-cloud-serv]
Gen[代码生成<br/>dataplatform-cloud-gen]
Job[定时任务<br/>dataplatform-cloud-job]
end
subgraph "基础设施层"
Nacos[Nacos<br/>注册中心 + 配置中心]
Redis[(Redis<br/>缓存)]
MySQL[(MySQL<br/>数据库)]
Monitor[可视化监控<br/>dataplatform-cloud-visual]
end
UI -->|HTTP| Gateway
Gateway -->|路由| Auth
Gateway -->|路由| System
Gateway -->|路由| Serv
Gateway -->|路由| Gen
Gateway -->|路由| Job
Auth -.->|服务注册/发现| Nacos
System -.->|服务注册/发现| Nacos
Serv -.->|服务注册/发现| Nacos
Gen -.->|服务注册/发现| Nacos
Job -.->|服务注册/发现| Nacos
Gateway -.->|服务注册/发现| Nacos
Auth -->|缓存| Redis
System -->|缓存| Redis
Serv -->|缓存| Redis
System -->|持久化| MySQL
Serv -->|持久化| MySQL
Gen -->|持久化| MySQL
Job -->|持久化| MySQL
Monitor -.->|监控| Gateway
Monitor -.->|监控| Auth
Monitor -.->|监控| System
Monitor -.->|监控| Serv
graph LR
subgraph "公共模块"
Common[dataplatform-cloud-common<br/>公共工具和配置]
API[dataplatform-cloud-api<br/>API 接口定义]
end
subgraph "服务模块"
Gateway[dataplatform-cloud-gateway]
Auth[dataplatform-cloud-auth]
System[dataplatform-cloud-system]
Serv[dataplatform-cloud-serv]
Gen[dataplatform-cloud-gen]
Job[dataplatform-cloud-job]
end
Gateway --> Common
Gateway --> API
Auth --> Common
Auth --> API
System --> Common
System --> API
Serv --> Common
Serv --> API
Gen --> Common
Gen --> API
Job --> Common
Job --> API
style Common fill:#e1f5ff
style API fill:#e1f5ff
依赖说明:
- dataplatform-cloud-common: 公共基础模块,包含工具类、常量、配置等,被所有服务模块依赖
- dataplatform-cloud-api: API 接口定义模块,定义服务间调用的 Dubbo 接口和 DTO
- dataplatform-cloud-gateway: 网关服务,依赖 common 和 api,负责请求路由和过滤
- dataplatform-cloud-auth: 认证服务,依赖 common 和 api,负责用户认证和授权
- 业务模块: system、serv、gen、job 均依赖 common 和 api,实现具体业务功能
项目结构:
dataplatform-cloud-parent
├── dataplatform-cloud-api # API 定义
├── dataplatform-cloud-auth # 认证服务
├── dataplatform-cloud-common # 公共模块
├── dataplatform-cloud-gateway # 网关服务
├── dataplatform-cloud-modules # 业务模块
│ ├── dataplatform-cloud-gen # 代码生成
│ ├── dataplatform-cloud-job # 定时任务
│ ├── dataplatform-cloud-serv # 系统管理
│ └── dataplatform-cloud-system # 系统接口
├── dataplatform-cloud-ui # 前端项目
└── dataplatform-cloud-visual # 可视化监控
- 必需:
- JDK 17+
- Maven 3.9+
- Docker & Docker Compose
- 基础设施 (通过 Docker 启动):
- MySQL 8.0
- Redis 7.x
- Nacos 2.x
git clone https://github.com/your-org/dataplatform-cloud-parent.git
cd dataplatform-cloud-parent使用 Docker Compose 启动 MySQL、Redis、Nacos:
# 启动所有基础设施
docker-compose up -d
# 检查服务状态
docker-compose ps服务地址:
- Nacos: http://localhost:8848/nacos (用户名/密码: nacos/nacos)
- MySQL: localhost:3306 (用户名/密码: root/root123)
- Redis: localhost:6379 (密码: dev123)
- 访问 Nacos 控制台: http://localhost:8848/nacos
- 登录后,Nacos 配置已自动持久化到 MySQL 数据库
- 验证关键配置:
./verify-nacos-config.sh
关键配置说明:
| 配置文件 | 命名空间 | 配置组 | 说明 |
|---|---|---|---|
| application-common.yml | dev | DEFAULT_GROUP | 公共配置(Redis、Seata等) |
| datasource.yml | dev | DEFAULT_GROUP | 数据源配置 |
| dataplatform-cloud-gateway.yml | dev | DEFAULT_GROUP | 网关配置 |
方式一: 使用自动化脚本(推荐)
# 启动所有服务(除 Job)
./start-all-services.sh --auto
# 停止所有服务
./stop-all-services.sh --yes
# 重启所有服务
./restart-all-services.sh --yes方式二: 手动启动
按照以下顺序启动服务:
- Gateway (端口 8080)
- Auth (端口 9210)
- System (端口 9201)
- Serv (端口 8090)
- Gen (端口 9202)
# 示例: 启动 Gateway 服务
cd dataplatform-cloud-gateway
mvn spring-boot:run -Dspring.profiles.active=devcd dataplatform-cloud-ui
npm install
npm run dev前端访问地址: http://localhost:8765
项目提供了完整的服务管理脚本,支持一键启动、停止、重启:
| 脚本名称 | 功能 | 使用场景 |
|---|---|---|
start-all-services.sh |
启动所有服务 | 首次启动、服务停止后 |
stop-all-services.sh |
停止所有服务 | 临时停止、维护前 |
restart-all-services.sh |
重启所有服务 | 配置更新后、故障恢复 |
verify-nacos-config.sh |
验证 Nacos 配置 | 配置检查 |
# 启动服务(交互式)
./start-all-services.sh
# 启动服务(自动模式,不需要确认)
./start-all-services.sh --auto
# 停止服务
./stop-all-services.sh --yes
# 重启服务(最常用)
./restart-all-services.sh --yes
# 验证 Nacos 配置
./verify-nacos-config.sh✓ 智能服务发现: 自动扫描所有 Spring Boot 服务
✓ 依赖检查: 自动检查 Java、Maven、Docker 等环境
✓ 顺序启动: Gateway → Auth → System → Serv → Gen
✓ 健康检查: 自动检测端口和服务状态
✓ 日志管理: 所有日志保存在 logs/ 目录
✓ PID 管理: 进程 PID 保存在 logs/pids/ 目录
# 查看 Gateway 日志
tail -f logs/gateway.log
# 查看 System 服务日志
tail -f logs/system.log
# 查看所有服务状态
./startup-check.shNacos 配置已自动持久化到 MySQL 数据库(nacos_config 表),重启 Nacos 后配置不会丢失。
# 手动备份配置
curl -s "http://localhost:8848/nacos/v1/cs/configs?dataId=application-common.yml&group=DEFAULT_GROUP&tenant=dev" \
> backup/nacos-configs/application-common-$(date +%Y%m%d).yml方式一: 使用 Nacos 控制台
- 访问 http://localhost:8848/nacos
- 配置管理 → 配置列表 → 编辑
方式二: 使用 API
curl -X POST "http://localhost:8848/nacos/v1/cs/configs" \
-d "dataId=application-common.yml" \
-d "group=DEFAULT_GROUP" \
-d "tenant=dev" \
--data-urlencode "content@script/config/nacos/application-common.yml"Nacos 自动保存配置历史,可以在控制台点击"历史版本"进行回滚。
问题: Gateway 服务报错 Could not resolve placeholder 'seata.enabled'
解决: 确保 Nacos 中配置了 seata.enabled: false
# 验证配置
./verify-nacos-config.sh问题: WRONGPASS invalid username-password pair
解决: 检查 Redis 密码配置
# application-common.yml
spring:
data:
redis:
password: dev123 # 确保与 Docker Redis 密码一致问题: Access denied for user 'root'@'192.168.65.1'
解决: 检查 MySQL 密码配置
# datasource.yml
datasource:
system-master:
password: root123 # 确保与 Docker MySQL 密码一致问题: 端口已被占用 解决: 检查并释放端口
# 检查端口占用
lsof -i :8080
# 停止所有服务
./stop-all-services.sh --yes问题: MapStruct 代码生成错误 解决: 清理并重新构建
cd dataplatform-cloud-common/dataplatform-cloud-common-orm
rm -rf target .flattened-pom.xml
mvn clean compile -Dmaven.compiler.useIncrementalCompilation=false -U
mvn install -DskipTests欢迎提交 Pull Request 或 Issue。