什么是分布式事务?


一、什么是分布式事务?

传统的单库/单节点事务处理起来比较方便(如MySQL遵循ACID特性),而分布式事务指的是多个跨库/跨节点之间的事务,比较复杂。

举个例子,在分布式系统中,如果要在电商系统中实现一个下单支付功能,需要涉及多个事务操作:

  • 库存服务:扣减库存
  • 账户服务:扣减余额
  • 订单服务:生成订单

分析:下单支付流程中涉及多个服务,如果其中一个流程失败了,那么整个流程都将出现问题,所以我们要通过分布式事务来支持,保证所有流程要么都执行,要么都不执行

二、分布式事务有哪些解决方案?

目前市面上主流的分布式事务有两种解决方案:

  • 强一致性方案:基于XA协议实现,如Seata中的XA事务模型(根据CAP模型可知,保证了强一致性,就会牺牲可用性
  • 弱一致性发难:基于BASE理论,如TCC事务模型、Seata中的Saga事务模型(根据CAP模型可知,牺牲了强一致性,就会保证了可用性,适合并发高的场景

文章作者: GaryLee
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 GaryLee !
  目录