开发者说 | 分布式事务中间件 Seata 的设计原理( 四 )
简要说说整个全局事务的执行步骤:
TM 向 TC 申请开启一个全局事务,TC 创建全局事务后返回全局唯一的 XID,XID 会在全局事务的上下文中传播;RM 向 TC 注册分支事务,该分支事务归属于拥有相同 XID 的全局事务;TM 向 TC 发起全局提交或回滚;TC 调度 XID 下的分支事务完成提交或者回滚。与 XA 方案有什么不同?
Seata 的事务提交方式跟 XA 协议的两段式提交在总体上来说基本是一致的,那它们之间有什么不同呢?
我们都知道 XA 协议它依赖的是数据库层面来保障事务的一致性,也即是说 XA 的各个分支事务是在数据库层面上驱动的,由于 XA 的各个分支事务需要有 XA 的驱动程序,一方面会导致数据库与 XA 驱动耦合,另一方面它会导致各个分支的事务资源锁定周期长,这也是它没有在互联网公司流行的重要因素。
基于 XA 协议以上的问题,Seata 另辟蹊径,既然在依赖数据库层会导致这么多问题,那我就从应用层做手脚,这还得从 Seata 的 RM 模块说起,前面也说过 RM 的主要作用了,其实 RM 在内部做了对数据库操作的代理层,如下:
推荐阅读
- 电子竞技|【欣然轻资讯G】《地平线2西部禁域》新老怪兽即将登场 开发者日志
- g2|【异界事务所】萌新游戏入门攻略-进入游戏后萌新最常遇见的问题
- 异界事务所|佣兵战纪女性颜值TOP3 女王英姿引人钦慕
- Xbox|曝微软正制作“少林”游戏 由《热血无赖》开发者与Xbox合作开发
- 牛人|单干牛人! 星露谷开发者还有另外一款新作
- mod|开发者为《塞尔达传说:时之笛》推出第一人称VR Mod
- edg战队|异界事务所国服公测定档26日,今日开启预约下载,数十万人预约中
- 星露谷物语|星露谷物语开发者新作《恐怖巧克力工厂》公布
- steam|Steam的退款机制合理吗?玩家滥用规则退款让开发者很受伤
- 手机游戏|二次元手游《异界事务所》将在8月24日开启先锋测试,立绘很好看