# demo-cloud-seata **Repository Path**: ywbingchuan/demo-cloud-seata ## Basic Information - **Project Name**: demo-cloud-seata - **Description**: seata分布式事务的演示代码 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-03-11 - **Last Updated**: 2026-03-11 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # Demo Cloud Seata 一个基于 Spring Cloud 和 Seata 的分布式事务演示项目。 ## 项目简介 本项目演示了如何使用 Seata 实现分布式事务管理。项目包含三个微服务,展示了跨服务的数据一致性问题解决方案。 ## 项目架构 ``` ┌─────────────────┐ ┌─────────────────┐ ┌─────────────────┐ │ server-turn │────▶│ server-boot1 │ │ server-boot2 │ │ (转账服务) │ │ (建设服务) │ │ (农业服务) │ └─────────────────┘ └─────────────────┘ └─────────────────┘ ``` ## 服务说明 ### server-turn (转账服务) - 端口:待配置 - 功能:协调分布式事务,处理建设账户向农业账户的转账业务 - 使用 `@GlobalTransactional` 注解实现分布式事务控制 ### server-boot1 (建设服务) - 端口:待配置 - 功能:管理建设账户的资金操作 - 提供接口:`/jianshe/jiansheTurnMoney/{userId}/{turnMoney}` ### server-boot2 (农业服务) - 端口:待配置 - 功能:管理农业账户的资金操作 - 提供接口:`/nongye/nongyeTurnMoney/{userId}/{turnMoney}` ## 技术栈 - Spring Boot - Spring Cloud - Seata (分布式事务解决方案) - MyBatis-Plus - Feign (服务调用) - MySQL ## 快速开始 ### 环境要求 - JDK 1.8+ - Maven 3.x - MySQL 5.7+ - Seata Server ### 初始化数据库 执行 `docs/db_shop_demo.sql` 创建所需的数据库表。 ### 配置 Seata 确保 Seata Server 已启动并配置好注册中心。 ### 编译项目 ```bash mvn clean package ``` ### 启动服务 按顺序启动三个服务: 1. server-boot1 2. server-boot2 3. server-turn ## 使用示例 转账操作(从建设账户转到农业账户): ```bash curl -X POST http://localhost:8080/turn/jiansheTurnNongYe ``` ## 核心代码 转账服务核心逻辑: ```java @PostMapping("/jiansheTurnNongYe") @GlobalTransactional(name = "turn-money-transaction", rollbackFor = Exception.class) public Object jiansheTurnNongYe() { // 1. 从建设账户扣款 // 2. 向农业账户存款 // 若任一步骤失败,Seata 会自动回滚所有更改 } ``` ## 许可证 MIT License