分布式事务的4种模式

AT、TCC、Saga、XA模式分析

四种分布式事务模式,分别在不同的时间被提出,每种模式都有它的适用场景

  • AT 模式是无侵入的分布式事务解决方案,适用于不希望对业务进行改造的场景,几乎0学习成本。
  • TCC 模式是高性能分布式事务解决方案,适用于核心系统等对性能有很高要求的场景。
  • Saga 模式是长事务解决方案,适用于业务流程长且需要保证事务最终一致性的业务系统,Saga 模式一阶段就会提交本地事务,无锁,长流程情况下可以保证性能,多用于渠道层、集成层业务系统。事务参与者可能是其它公司的服务或者是遗留系统的服务,无法进行改造和提供 TCC 要求的接口,也可以使用 Saga 模式。
  • XA模式是分布式强一致性的解决方案,但性能低而使用较少。

 

分布式事务的泛化

提起分布式事务,最早指的涉及多个资源的数据库事务问题。

wiki对分布式事务的定义:A distributed transaction is a database transaction in which two or more network hosts are involved.

不过事务一词含义随着SOA架构逐渐扩大,根据上下文不同,可分为两类:

  1. System transaction
  2. Business transaction

前者多指数据库事务,后者则多对应一个业务交易。与此同时,分布式事务的含义也在泛化,尤其SOA、微服务概念流行起来后,多指的是一个业务场景,需要编排很多独立部署的服务时,如何保证交易整体的原子性与一致性问题,这类分布式事务也称作长事务(long-lived transaction),例如一个定行程的交易,它由购买航班、租车以及预订酒店构成,而航班预订可能需要一两天才能确认。为了统一对概念的理解,本文默认指的都是这类长事务。

分布式事务概念泛化的同时,也带来了一个技术问题,微服务下这类分布式事务的ACID该如何保证?是否仍然可以用传统两阶段提交/XA去解决?

 

参考:

由Seata看分布式事务取舍

https://www.jianshu.com/p/917cb4bdaa03

 

分布式事务,这一篇就够了

https://xiaomi-info.github.io/2020/01/02/distributed-transaction/

分布式事务:从刚性事务到柔性事务

https://www.jianshu.com/p/d70df89665b9

总结 AT、TCC、Saga、XA 模式分析

https://www.cnblogs.com/JaminXie/p/13885671.html

分布式事务的4种模式

https://zhuanlan.zhihu.com/p/78599954

一篇文章带你学习分布式事务

https://www.infoq.cn/article/g1avP9FUA6CDOYRAlv4R?utm_source=related_read_bottom&utm_medium=article



 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值