开发者说 | 分布式事务中间件 Seata 的设计原理( 二 )
分布式事务解决的方案有哪些?
目前分布式事务解决的方案主要有对业务无入侵和有入侵的方案,无入侵方案主要有基于数据库 XA 协议的两段式提交(2PC)方案,它的优点是对业务代码无入侵,但是它的缺点也是很明显:必须要求数据库对 XA 协议的支持,且由于 XA 协议自身的特点,它会造成事务资源长时间得不到释放,锁定周期长,而且在应用层上面无法干预,因此它性能很差,它的存在相当于七伤拳那样“伤人七分,损己三分”,因此在互联网项目中并不是很流行这种解决方案。
为了这个弥补这种方案带来性能低的问题,大佬们又想出了很多种方案来解决,但这无一例外都需要通过在应用层做手脚,即入侵业务的方式,比如很出名的 TCC 方案,基于 TCC 也有很多成熟的框架,如 ByteTCC、tcc-transaction 等。以及基于可靠消息的最终一致性来实现,如 RocketMQ 的事务消息。
入侵代码的方案是基于现有情形“迫不得已”才推出的解决方案,实际上它们实现起来非常不优雅,一个事务的调用通常伴随而来的是对该事务接口增加一系列的反向操作,比如 TCC 三段式提交,提交逻辑必然伴随着回滚的逻辑,这样的代码会使得项目非常臃肿,维护成本高。
推荐阅读
- 电子竞技|【欣然轻资讯G】《地平线2西部禁域》新老怪兽即将登场 开发者日志
- g2|【异界事务所】萌新游戏入门攻略-进入游戏后萌新最常遇见的问题
- 异界事务所|佣兵战纪女性颜值TOP3 女王英姿引人钦慕
- Xbox|曝微软正制作“少林”游戏 由《热血无赖》开发者与Xbox合作开发
- 牛人|单干牛人! 星露谷开发者还有另外一款新作
- mod|开发者为《塞尔达传说:时之笛》推出第一人称VR Mod
- edg战队|异界事务所国服公测定档26日,今日开启预约下载,数十万人预约中
- 星露谷物语|星露谷物语开发者新作《恐怖巧克力工厂》公布
- steam|Steam的退款机制合理吗?玩家滥用规则退款让开发者很受伤
- 手机游戏|二次元手游《异界事务所》将在8月24日开启先锋测试,立绘很好看