Skip to content

ttieli/dataplatform-cloud-parent

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

128 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

RuoYi-Cloud-Plus Logo

dataplatform-cloud-parent

Gitee star Gitee fork JDK 17+ license


平台简介

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
Loading

组件依赖关系

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
Loading

依赖说明:

  • 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      # 可视化监控

快速开始

1. 环境准备

  • 必需:
    • JDK 17+
    • Maven 3.9+
    • Docker & Docker Compose
  • 基础设施 (通过 Docker 启动):
    • MySQL 8.0
    • Redis 7.x
    • Nacos 2.x

2. 克隆项目

git clone https://github.com/your-org/dataplatform-cloud-parent.git
cd dataplatform-cloud-parent

3. 启动基础设施

使用 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)

4. 配置 Nacos

  1. 访问 Nacos 控制台: http://localhost:8848/nacos
  2. 登录后,Nacos 配置已自动持久化到 MySQL 数据库
  3. 验证关键配置:
    ./verify-nacos-config.sh

关键配置说明:

配置文件 命名空间 配置组 说明
application-common.yml dev DEFAULT_GROUP 公共配置(Redis、Seata等)
datasource.yml dev DEFAULT_GROUP 数据源配置
dataplatform-cloud-gateway.yml dev DEFAULT_GROUP 网关配置

5. 启动后端服务

方式一: 使用自动化脚本(推荐)

# 启动所有服务(除 Job)
./start-all-services.sh --auto

# 停止所有服务
./stop-all-services.sh --yes

# 重启所有服务
./restart-all-services.sh --yes

方式二: 手动启动

按照以下顺序启动服务:

  1. Gateway (端口 8080)
  2. Auth (端口 9210)
  3. System (端口 9201)
  4. Serv (端口 8090)
  5. Gen (端口 9202)
# 示例: 启动 Gateway 服务
cd dataplatform-cloud-gateway
mvn spring-boot:run -Dspring.profiles.active=dev

6. 启动前端项目

cd 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.sh

Nacos 配置管理

配置持久化

Nacos 配置已自动持久化到 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 控制台

  1. 访问 http://localhost:8848/nacos
  2. 配置管理 → 配置列表 → 编辑

方式二: 使用 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 自动保存配置历史,可以在控制台点击"历史版本"进行回滚。

常见问题

1. 服务启动失败

问题: Gateway 服务报错 Could not resolve placeholder 'seata.enabled' 解决: 确保 Nacos 中配置了 seata.enabled: false

# 验证配置
./verify-nacos-config.sh

2. Redis 连接失败

问题: WRONGPASS invalid username-password pair 解决: 检查 Redis 密码配置

# application-common.yml
spring:
  data:
    redis:
      password: dev123  # 确保与 Docker Redis 密码一致

3. MySQL 连接失败

问题: Access denied for user 'root'@'192.168.65.1' 解决: 检查 MySQL 密码配置

# datasource.yml
datasource:
  system-master:
    password: root123  # 确保与 Docker MySQL 密码一致

4. 端口冲突

问题: 端口已被占用 解决: 检查并释放端口

# 检查端口占用
lsof -i :8080

# 停止所有服务
./stop-all-services.sh --yes

5. Maven 编译失败

问题: 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。

许可证

MIT

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors