spring cloud seata 知识点 一、Seata 是什么Seata 是阿里巴巴开源的分布式事务解决方案致力于提供高性能和简单易用的分布式事务服务。✅ 解决跨服务、跨数据库的事务一致性问题✅ Spring Cloud Alibaba 官方推荐二、分布式事务背景为什么要用 Seata1️⃣ 传统事务的局限单体应用Transactional ✅微服务多个服务、多个数据库 ❌2️⃣ 典型问题下单服务 → 扣库存 → 创建订单 → 扣账户余额❌ 其中一个失败其他已提交 →数据不一致三、Seata 核心概念必背角色说明TC (Transaction Coordinator)事务协调者Seata ServerTM (Transaction Manager)事务管理器GlobalTransactionalRM (Resource Manager)资源管理器数据库四、Seata 执行流程高频TM 开启全局事务 ↓ RM 注册分支事务 ↓ 执行业务 SQL ↓ RM 报告状态 ↓ TC 决定提交或回滚 ↓ TM 结束事务✅两阶段提交思想五、Seata 的四种事务模式重点1️⃣ AT 模式最常用 ⭐⭐⭐⭐⭐特点无侵入自动补偿基于 UNDO_LOG原理执行前记录前镜像执行后记录后镜像回滚用前镜像恢复数据✅适合大多数业务2️⃣ TCC 模式强一致阶段方法Try资源预留Confirm确认Cancel取消✅ 适合资金库存强一致场景❌ 代码侵入高3️⃣ SAGA 模式长事务✅ 正向执行✅ 失败补偿✅ 适合跨系统长流程不可回滚操作4️⃣ XA 模式强一致✅ 数据库原生支持❌ 锁时间长六、AT 模式详解面试必问1️⃣ UNDO_LOG 表关键CREATETABLEundo_log(idBIGINTAUTO_INCREMENT,branch_idBIGINTNOTNULL,xidVARCHAR(100)NOTNULL,contextVARCHAR(128),rollback_infoLONGBLOB,log_statusINT,PRIMARYKEY(id));✅回滚的依据2️⃣ 全局锁Global Lock防止脏写在提交前加锁七、Seata 与 CAP 理论模式一致性可用性AT最终一致✅TCC强一致❌SAGA最终一致✅八、Seata 配置要点实战1️⃣ 引入依赖dependencygroupIdcom.alibaba.cloud/groupIdartifactIdspring-cloud-starter-alibaba-seata/artifactId/dependency2️⃣ 开启全局事务GlobalTransactionalpublicvoidcreateOrder(){orderService.create();accountService.debit();storageService.deduct();}3️⃣ 数据源代理非常关键 ⚠️BeanpublicDataSourcedataSource(DataSourceoriginal){returnnewDataSourceProxy(original);}❌ 不加代理 → Seata 不生效九、Seata 常见问题面试坑❌ 全局锁冲突❌ 回滚失败❌ UNDO_LOG 表缺失❌ 数据源未代理❌ 事务粒度过大十、Seata vs 其他方案方案特点Seata AT简单、常用TCC强一致MQ 最终一致高吞吐2PC传统十一、面试标准答案背这段 ✅Seata 是阿里开源的分布式事务框架通过 TC、TM、RM 三组件协调全局事务。最常用的是 AT 模式基于 UNDO_LOG 实现自动回滚对业务侵入小。对于强一致场景可使用 TCC 模式对于长事务可使用 SAGA 模式。在使用 Seata 时必须对数据源进行代理并配置全局事务注解。十二、一句话总结记住这句✅Seata 分布式事务的“Spring Transactional”