# dataxp **Repository Path**: Changgh/dataxp ## Basic Information - **Project Name**: dataxp - **Description**: No description available - **Primary Language**: Unknown - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-11-27 - **Last Updated**: 2025-11-27 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # DataXP 项目指南 ## 项目概述 DataXP 是一个基于 Spring Boot 的数据同步工具,集成了 XXL-JOB 调度系统和 DataX 3.0,提供 Web 可视化管理后台和 Docker 容器化部署能力。该项目被称为"数据搬运工",专注于高效的数据同步和迁移任务。 ### 核心技术栈 - **Java**: 1.8 - **Spring Boot**: 2.3.2.RELEASE - **Spring Cloud**: Hoxton.SR8 - **Spring Cloud Alibaba**: 2.2.3.RELEASE - **MyBatis Plus**: 3.4.0 - **XXL-JOB**: 分布式任务调度框架 - **DataX**: 3.0 数据同步工具 - **Redis**: 缓存和会话管理 - **Docker**: 容器化部署 - **Maven**: 项目构建工具 ### 项目架构 项目采用多模块架构,包含以下四个核心模块: 1. **xp-pp-common**: 公共模块,包含通用工具类、配置和基础实体 2. **xp-pp-admin**: 管理端模块,提供 Web 管理界面和 API 服务 3. **xp-pp-generator**: 代码生成器模块,用于快速生成业务代码 4. **xp-pp-actuator**: 执行器模块,负责执行数据同步任务 ## 构建和运行 ### 环境要求 - JDK 1.8+ - Maven 3.3+ - MySQL 5.7+ 或 8.0+ - Redis 3.0+ - Docker (可选,用于容器化部署) ### 构建命令 ```bash # 清理并编译项目 mvn clean install # 跳过测试打包 mvn clean package -Dmaven.test.skip=true # 单独构建特定模块 mvn clean install -pl xp-pp-admin ``` ### 运行服务 #### 管理端 (xp-pp-admin) ```bash # 方式1: 使用 Maven 运行 cd xp-pp-admin mvn spring-boot:run # 方式2: 运行打包后的 JAR java -jar target/xp-pp-admin-1.0.0.jar # 方式3: Docker 运行 docker build -t dataxp-admin . docker run -p 9002:9002 dataxp-admin ``` #### 执行器 (xp-pp-actuator) ```bash # 方式1: 使用 Maven 运行 cd xp-pp-actuator mvn spring-boot:run # 方式2: 运行打包后的 JAR java -jar target/xp-pp-actuator-1.0.0.jar # 方式3: Docker 运行 docker build -t dataxp-actuator . docker run -p 20001:20001 dataxp-actuator ``` ### 配置说明 #### 数据库配置 主要配置文件位于 `xp-pp-admin/src/main/resources/application-comm.yml`: ```yaml spring: datasource: dynamic: primary: master datasource: master: driver-class-name: com.mysql.cj.jdbc.Driver url: jdbc:mysql://127.0.0.1:3307/pp_admin_db?useUnicode=true&characterEncoding=UTF-8&autoReconnect=true&serverTimezone=Asia/Shanghai username: root password: 123123!@# ``` #### XXL-JOB 配置 执行器配置位于 `xp-pp-actuator/src/main/resources/application-xxljob.yml`: ```yaml xxl: job: admin: addresses: http://127.0.0.1:20000 accessToken: 1qaz2wsx executor: appname: poseidon-actuator port: 9991 logpath: /Users/changgaohong/cgh/code_learning/dataex/dataxp/logs/xxl-job/jobhandler logretentiondays: 30 datax: jsonpath: "/Users/changgaohong/cgh/code_learning/dataex/dataxp/logs/json" pypath: "/Users/changgaohong/cgh/code_learning/dataex/DataX/test/datax/bin/datax.py" ``` ## 开发规范 ### 代码风格 - 使用 Lombok 注解减少样板代码 - 遵循 Spring Boot 最佳实践 - 使用 MyBatis Plus 进行数据库操作 - 统一使用 UTF-8 编码 - 使用 Swagger 进行 API 文档管理 ### 数据库规范 - 主键策略:AUTO(数据库自增) - 字段策略:NOT_NULL(非 NULL 判断) - 逻辑删除:-1 表示已删除,0 表示未删除 - 驼峰下划线转换已启用 ### 多数据源支持 项目支持多数据源配置,使用 MyBatis Plus 动态数据源: ```yaml spring: datasource: dynamic: primary: master datasource: master: # 主数据源配置 slave: # 从数据源配置(可选) ``` ## 部署指南 ### 传统部署 1. 修改配置文件中的数据库连接信息 2. 执行数据库初始化脚本(位于 `xp-pp-admin/db/`) 3. 分别启动管理端和执行器服务 ### Docker 部署 1. 构建镜像: ```bash # 管理端镜像 docker build -t dataxp-admin ./xp-pp-admin # 执行器镜像 docker build -t dataxp-actuator ./xp-pp-actuator ``` 2. 运行容器: ```bash # 管理端 docker run -d -p 9002:9002 --name dataxp-admin dataxp-admin # 执行器 docker run -d -p 20001:20001 --name dataxp-actuator dataxp-actuator ``` ### CI/CD 集成 项目包含 Gitee Go 工作流配置(`.workflow/master-pipeline.yml`),支持自动构建和发布: - 自动触发:master 分支推送时 - 构建流程:Maven 编译 → 上传制品 → 发布版本 - 支持 JDK 8 和 Maven 3.3.9 ## 功能特性 - **可视化界面**: 提供完整的 Web 管理界面 - **任务调度**: 基于 XXL-JOB 的分布式任务调度 - **数据同步**: 集成 DataX 3.0 支持多种数据源 - **多数据库支持**: MySQL、Oracle、SQL Server、DM 等 - **容器化部署**: 支持 Docker 快速部署 - **监控日志**: 完整的任务执行日志和监控 ## 常用命令 ```bash # 查看项目状态 git status # 查看日志 tail -f logs/2025-11-27.0.log # 查看任务执行日志 tail -f logs/xxl-job/jobhandler/2025-11-27/xxxx.log # 重启服务 docker restart dataxp-admin docker restart dataxp-actuator ``` ## 注意事项 1. 确保 DataX 环境已正确安装并配置 2. 数据库连接信息需要根据实际环境修改 3. XXL-JOB 管理中心需要先启动 4. 执行器需要正确配置 DataX 的 Python 脚本路径 5. 日志目录需要有足够的磁盘空间 ## 相关链接 - 项目博客:https://blog.csdn.net/A1sdf/article/details/127296890 - 安装文档:https://download.csdn.net/download/A1sdf/88700235 - XXL-JOB 官方文档:https://www.xuxueli.com/xxl-job/ - DataX 官方文档:https://github.com/alibaba/DataX - DataX Web可视化分布式调度数据同步系统:https://www.cnblogs.com/shenxingping/p/15908823.html