当前位置: 首页 > news >正文

spring cloud seata 知识点

一、Seata 是什么?

Seata 是阿里巴巴开源的分布式事务解决方案,致力于提供高性能和简单易用的分布式事务服务。

✅ 解决跨服务、跨数据库的事务一致性问题
✅ Spring Cloud Alibaba 官方推荐


二、分布式事务背景(为什么要用 Seata)

1️⃣ 传统事务的局限

  • 单体应用:@Transactional ✅
  • 微服务:多个服务、多个数据库 ❌

2️⃣ 典型问题

下单服务 → 扣库存 → 创建订单 → 扣账户余额

❌ 其中一个失败,其他已提交 →数据不一致


三、Seata 核心概念(必背)

角色说明
TC (Transaction Coordinator)事务协调者(Seata Server)
TM (Transaction Manager)事务管理器(@GlobalTransactional)
RM (Resource Manager)资源管理器(数据库)

四、Seata 执行流程(高频)

TM 开启全局事务 ↓ RM 注册分支事务 ↓ 执行业务 SQL ↓ RM 报告状态 ↓ TC 决定提交或回滚 ↓ TM 结束事务

两阶段提交思想


五、Seata 的四种事务模式(重点)

1️⃣ AT 模式(最常用 ⭐⭐⭐⭐⭐)

特点

  • 无侵入
  • 自动补偿
  • 基于 UNDO_LOG

原理

  1. 执行前:记录前镜像
  2. 执行后:记录后镜像
  3. 回滚:用前镜像恢复数据

适合大多数业务


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️⃣ 引入依赖

<dependency><groupId>com.alibaba.cloud</groupId><artifactId>spring-cloud-starter-alibaba-seata</artifactId></dependency>

2️⃣ 开启全局事务

@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”


http://www.jsqmd.com/news/828907/

相关文章:

  • 【卷卷观察】一条音频文件就能接管你的手机——Pixel 10零点击漏洞链全解析
  • SAP 授权设计里,Profile 和 Authorization 不能直接改标准对象
  • 基于高通平台的AR眼镜安卓主板设计:性能、功耗与尺寸的极致平衡
  • 2026年广州装饰公司推荐排行榜:店面、办公施工、全案装饰的优质之选! - 速递信息
  • Unpaywall:一键解锁付费学术论文的终极浏览器扩展
  • Winhance中文版:3步让Windows系统重获新生的终极优化神器
  • Bootstrap Application Wizard高级功能解析:自定义验证与事件处理
  • springcloud Sentinel
  • 不同体系外审员的报考条件差异对比 - 众智商学院职业教育
  • BookGet:零基础入门指南,轻松下载全球50+图书馆古籍资源
  • 【职场】工作中当领导说“你觉得呢?“,他说的是……
  • 双轨制协同推进重构广州楼市底层规则,供求关系成为资产涨跌唯一底层逻辑 - 速递信息
  • 如何快速激活Adobe全系列软件?Adobe-GenP通用补丁完全指南
  • 为什么你的ElevenLabs阿拉伯文语音被平台拒审?——GCC国家合规性清单(含沙特SAMA、阿联酋TDRA认证要点)
  • 【实战指南】跨越系统鸿沟:在Windows+WSL2+Ubuntu20.04上构建AirSim与ROS的异构通信桥梁
  • Markdown怎么转Word?MD文档转换方法盘点,2026在线工具实测 - AI测评专家
  • 如何在Windows 10上完美使用Apple触控板:mac-precision-touchpad驱动完全指南
  • 外审员报考资格:条件解读与提前准备 - 众智商学院职业教育
  • 简单三步让Windows焕然一新:Winhance中文版完整优化指南
  • 纽约出租车数据分析完整指南:从30亿条记录中挖掘城市交通洞察
  • Ubuntu上基于QEMU与Zephyr构建嵌入式蓝牙Polling模式开发环境
  • MTK设备BootROM保护绕过技术解析:底层通信机制与安全绕过实现
  • BGA底部填充胶在音视频设备控制板上的应用与工艺详解
  • ledger购买渠道:合作伙伴公示网络的参考价值 - 速递信息
  • Linux微信小程序开发终极指南:从零搭建完整开发环境
  • TI毫米波雷达IWR/AWR1642 L3 RAM内存优化实战:从原理到配置
  • Steam饰品交易数据监控指南:如何利用开源行情站实现智能交易决策
  • 如何在macOS上运行Windows应用:Whisky完整使用指南
  • 长沙秦义租赁:宁乡靠谱的脚手架租赁公司选哪家 - LYL仔仔
  • 结合您之前对EtherCAT分布式时钟(DC)、PCIe主站通信卡及ZLG致远电子在IO通讯和电机驱动的讨论,以下是对ZLG致远电子EtherCAT产品细节的深入解析,重点涵盖其产品系列、技术规格