Seata基础01-SEATA分布式事务模式
参考文档:
事务模式脑图
常用的几个名词
- TC (Transaction Coordinator) - 事务协调者:维护全局和分支事务的状态,驱动全局事务提交或回滚。
- TM (Transaction Manager) - 事务管理器:定义全局事务的范围:开始全局事务、提交或回滚全局事务。
- RM (Resource Manager) - 资源管理器:管理分支事务处理的资源,与TC交谈以注册分支事务和报告分支事务的状态,并驱动分支事务提交或回滚。
XA方案
XA协议
- 规范TM与RM之间的通信接口,在TM和多个RM之间形成一个双向通信桥梁,从而在多个数据库资源下保证ACID四个特性。
- 目前几个常用的数据库都实现了XA接口,都可以作为RM
DTP(Distributed Transaction Processing Reference Model)模型
- DTP 模型定义TM和RM之间通讯的接口规范叫 XA,简单理解为数据库提供的 2PC 接口协议,基于数据库的 XA 协议来实现 2PC 又称为 XA 方案
两个阶段2PC(two-phase commit protocol):
2PC是什么?
两阶段提交是XA协议在全局事务管理中协调多个资源的一种机制;
两阶段是分布式事务处理中的两个阶段;
其中有两个重要的角色:事务协调者(SEATA就是其中的一种组件)和事务参与者(数据库服务器)
2PC的过程
- 执行阶段
- 事务协调者TC向事务参与者发送事务内容,并询问是否可以提交事务,并等待参与者恢复
- 事务参与者接收到事务内容,开始执行事务操作
- 事务参与者返回事务协调者TC事务执行状态(yes Or no)
- 完成阶段
- 提交事务:
- 事务协调者TC 向每个事务参与者发送Commit通知;
- 事务参与者接收到通知之后执行commit操作,释放占用资源
- 事务参与者向事务协调者TC返回事务commit结果信息
- 回滚事务:
- 事务协调者TC向各个事务参与者发送rollback通知
- 事务参与者接收到事务回滚通知后,执行rollback操作,释放占用资源
- 参与者向协调者返回事务rollback结果
- 提交事务:
2PC的目的是什么?
- 解决分布式数据库数据的强一致性问题
XA的2PC存在那些缺点:
- 它是一个强一致性的同步阻塞协议,事务执行过程中需要将所需资源全部锁定,也就是俗称的刚性事务
- 一旦事务协调者宕机或者发生网络抖动,会让参与者一直处于锁定资源的状态或者只有一部分参与者提交成功,导致数据的不一致
TA方案
TCC方案
TCC方案的工作机制
TCC方案和TA方案的区别
TA方案自动进行补偿,而TCC方案需要人工进行补偿
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· 葡萄城 AI 搜索升级:DeepSeek 加持,客户体验更智能
· 什么是nginx的强缓存和协商缓存
· 一文读懂知识蒸馏