`
m635674608
  • 浏览: 5042184 次
  • 性别: Icon_minigender_1
  • 来自: 南京
社区版块
存档分类
最新评论

分布式事务的典型处理方式:2PC、TCC、异步确保和最大努力型

 
阅读更多

1. 柔性事务和刚性事务

柔性事务满足BASE理论(基本可用,最终一致)
刚性事务满足ACID理论

本文主要围绕分布式事务当中的柔性事务的处理方式进行讨论。

柔性事务分为

  1. 两阶段型
  2. 补偿型
  3. 异步确保型
  4. 最大努力通知型几种。 由于支付宝整个架构是SOA架构,因此传统单机环境下数据库的ACID事务满足了分布式环境下的业务需要,以上几种事务类似就是针对分布式环境下业务需要设定的。

2. 两阶段提交(2PC)型

两阶段型:就是分布式事务两阶段提交,对应技术上的XA、JTA/JTS。
这是分布式环境下事务处理的典型模式。

2、事务补偿型(TCC事务):

TCC型事务(Try/Confirm/Cancel)可以归为补偿型。
补偿型的例子,在一个长事务( long-running )中 ,一个由两台服务器一起参与的事务,服务器A发起事务,服务器B参与事务,B的事务需要人工参与,所以处理时间可能很长。如果按照ACID的原则,要保持事务的隔离性、一致性,服务器A中发起的事务中使用到的事务资源将会被锁定,不允许其他应用访问到事务过程中的中间结果,直到整个事务被提交或者回滚。这就造成事务A中的资源被长时间锁定,系统的可用性将不可接受。
WS-BusinessActivity提供了一种基于补偿的long-running的事务处理模型。还是上面的例子,服务器A的事务如果执行顺利,那么事务A就先行提交,如果事务B也执行顺利,则事务B也提交,整个事务就算完成。但是如果事务B执行失败,事务B本身回滚,这时事务A已经被提交,所以需要执行一个补偿操作,将已经提交的事务A执行的操作作反操作,恢复到未执行前事务A的状态。这样的SAGA事务模型,是牺牲了一定的隔离性和一致性的,但是提高了long-running事务的可用性。
例子来源:OASIS的WS-BusinessActivity文档

3、异步确保型

将一些同步阻塞的事务操作变为异步的操作,避免对数据库事务的争用,典型例子是热点账户异步记账、批量记账的处理。

4、最大努力型

PPT中提到的例子交易的消息通知(例如商户交易结果通知重试、补单重试)

如果有技术背景,可以参考另外一个文档 大规模SOA系统中的分布事务处事 ,对支付宝分布式事务处理机制有较为详细描述。
更详细的也可以参考OASIS的相关资料。

参考资料:
https://www.zhihu.com/question/31813039(梁川)
支付宝架构与技术
大规模SOA系统中的分布式事务处理

 

http://kaimingwan.com/post/fen-bu-shi/fen-bu-shi-shi-wu-de-dian-xing-chu-li-fang-shi-2pc-tcc-yi-bu-que-bao-he-zui-da-nu-li-xing#toc_4

分享到:
评论

相关推荐

    浅谈分布式事务实现技术及应用场景探讨.pdf

    5. 最大努力通知(Best-Effort Notification):是一种基于事件驱动的分布式事务实现技术。它可以在分布式事务中提供实时性的通知机制,避免了事务的同步等待。 分布式事务应用场景: 1. 电子商务系统:分布式事务...

    分布式事务视频教程

    ### 分布式事务基础知识与实践 #### 一、分布式事务概念及重要性 在现代软件架构中,随着业务复杂度的提升...此外,随着技术的发展,未来可能会有更多高效、可靠的分布式事务处理方式出现,值得我们持续关注和学习。

    分布式事务难题在微服务架构下的解法和标准化1

    4. **分布式事务状态机(TCC,Try-Confirm-Cancel)**:类似于Saga,TCC通过尝试、确认和取消三个操作来确保事务的一致性。每个服务提供Try操作尝试执行业务,Confirm完成业务,Cancel则用于回滚。 5. **最终一致性...

    分布式事务-可靠消息的服务的设计与实现(消息服务子系统)

    4. **两阶段提交(2PC)**:一种经典的分布式事务解决方案,分为准备阶段和提交阶段。但在高并发环境下,2PC可能会导致阻塞,效率较低。 5. **补偿事务(TCC)**:Try-Confirm-Cancel模式,服务提供者尝试执行业务...

    Java面试宝典:包含Redis各种使用场景,分布式事务,分布式锁,DB,异步并发,JVM,微服务组件,常见的设计模式等

    这份宝典深入探讨了Redis的各种使用场景、分布式事务处理、分布式锁的实现、数据库操作、异步并发编程、JVM(Java虚拟机)优化、微服务组件的使用以及经典的设计模式。以下是对这些主题的详细阐述: 1. **Redis使用...

    分布式事务入门

    分布式事务是现代软件系统中处理大规模并发操作的关键技术,尤其在大数据、云计算和微服务架构背景下,其重要性不言而喻。本教程将带你深入理解分布式事务的基础知识,并通过具体的代码示例和完整的文档,让你能够...

    微服务架构-分布式事务设计方案分享.pdf

    - 柔性事务基于BASE理论,通常应用于分布式环境,包括两阶段提交(2PC)、TCC(Try-Confirm-Cancel)补偿型事务、基于消息的异步确保型事务和最大努力通知型事务。在分布式场景中,通常推荐使用柔性事务。 **最佳...

    分布式事务设计.docx

    场景二涉及支付和直充服务,由于网络延迟和业务实时性要求不高,可采用异步确保型,先创建订单,再通过消息队列异步处理支付和充值。 总结来说,分布式事务设计的关键是将大事务拆分为小事务,并利用各种策略确保...

    分布式事务的详细介绍。

    总结来说,分布式事务是保证分布式系统数据一致性的关键,通过理解CAP原则和Base理论,可以选择合适的分布式事务解决方案,如2PC、3PC、TCC或MQ,以及利用Seata等工具来简化分布式事务的管理和实现。在实际应用中,...

    第八讲-分布式事务原理及应用.pdf

    分布式事务原理及应用 在IT领域,事务是数据库操作的核心概念,它确保了数据的一致性和完整性。事务(Transaction)是一个程序执行单元,用于访问和可能更新数据库中的数据项。在关系数据库中,事务通常由一系列SQL...

    分布式事务简介和解决思路

    4. **TA(Transaction Asynchronous)事务**:结合异步消息驱动和补偿事务模型,类似TCC,但更强调异步解耦,事务处理延迟较高。 5. **SAGA(Saga)事务**:将长事务拆分为一系列短事务,每个短事务对应一个服务...

    微服务架构下的分布式事务处理

    实现这一目标通常采用两阶段提交(2PC)、补偿事务(Saga)或者分布式事务协调器(如TCC - Try-Confirm-Cancel)等技术。 2. **一致性**:在分布式环境中,一致性指的是数据在所有副本间的一致性状态。CAP定理指出...

    分布式事务代码演示.zip

    分布式事务是计算机科学中一种处理多数据库操作一致性的重要机制,特别是在大规模网络服务和微服务架构中。本资源“分布式事务代码演示.zip”提供了一个实际的示例,帮助开发者理解和实现分布式事务。分布式事务通常...

    微服务架构及分布式事务解决方案.docx

    此外,还有其他类型的分布式事务解决方案,如两阶段提交(2PC)、三阶段提交(3PC)以及基于事件的异步确保型事务。这些方案在不同的业务场景下各有优缺点,需要根据实际需求和系统的性能、可用性要求来选择。 ...

    微服务主题系统_分布式事务领域知识及常见解决方案

    分布式事务是在微服务架构中处理跨多个数据库或服务的数据一致性问题的关键技术。随着大数据和SOA(面向服务架构)的兴起,系统被拆分为多个独立的服务,每个服务都有自己的数据库,分布式事务的需求变得越来越普遍...

    完整版微服务架构的分布式事务解决方案

    而在微服务架构中,由于服务之间的边界,传统的事务管理方式不再适用,这就需要引入分布式事务的概念来保证跨服务的数据一致性。 #### 分布式事务的基本概念 分布式事务是指在分布式系统中为了保证跨服务、跨...

    一文理解分布式事务的解决方案.docx

    1. 2PC(二阶段提交):这是一个经典的分布式事务协议,由预提交和提交两个阶段组成。2PC的优点在于对业务逻辑的低侵入性,但由于同步阻塞、单点故障和可能的数据不一致问题,它的应用受到了限制。协调者故障可能...

    txc-yun-sample.zip_云_分布式事务

    腾讯云提供的分布式事务服务是为了确保在分布式系统中的数据一致性,解决传统单体数据库无法满足的复杂业务场景下的事务处理问题。本示例代码"txc-yun-sample.zip"是腾讯云针对分布式事务提供的一种Java实现方案,...

Global site tag (gtag.js) - Google Analytics