`
m635674608
  • 浏览: 4929198 次
  • 性别: 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

分享到:
评论

相关推荐

    基于TCC的分布式事务代码示例:使用tcc-transaction框架.zip

    基于TCC的分布式事务代码示例:使用tcc-transaction框架.zip

    rest-tcc分布式事务

    tcc 分布式事务 解决方案 基于rest的分布式事务解决方案

    TCC实现分布式事物,java 源码

    TCC实现分布式事物,实现多数据源,多应用事物统一管理。代码过多,需经验丰富

    微服务架构的分布式事务控制及解决方案视频教程

    最全分布式事务视频课程详细讲解,需要的小伙伴自行百度网盘下载,链接见附件,永久有效。 视频课程大纲: 1.事务基本概念讲解(本地、分布式) ...6.分布式事务解决方案之最大努力通知 7.分布式事务综合案例分析

    微服务架构的分布式事务解决方案(Dubbo分布式事务处理)

    为了解决大家在实施分布式服务化架构过程中关于分布式事务问题的困扰,本教程将基于支付系统真实业务中的经典场景来对“可靠消息的最终一致性方案”、“TCC两阶段型方案”和“最大努力通知型方案”这3种柔性事务解决...

    分布式事务实践 解决数据一致性

    介绍分布式事务的定义、原则和实现原则,介绍使用Spring框架实现分布式事务的几种方式,包括使用JTA、Spring事务同步、链式事务等,并通过实战介绍其实现。除此以外还介绍了一些分布式事务相关的技术,如幂等性、...

    分布式事务.pdf

    这篇文章将介绍什么是分布式事务,分布式...相信耐心看完这篇文章,谈到分布式事务,不再只是有“2PC”、“3PC”、“MQ的消息事 务”、“最终一致性”、“TCC”等这些知识碎片,而是能够将知识连成一片,形成知识体系。

    分布式事务解决方案「手写代码」视频教程

    2.2PC/3PC:通过2PC演化各种方案:XA方案、JTA、LCN、Seata 3.TCC:TCC不依赖本地事务的解决方案 4.可靠消息最终一致性:唯有了解方案原理,方能熟悉RocketMQ的事务消息 5.最大努力通知:原来微信支付、支付宝的支付...

    分布式事务 Seata TCC 模式深度解析

    本文档的内容主要分为以下四个部分: ...2、从 TCC 的业务模型与并发控制分享如何设计一个 TCC 接口,并且适配 TCC 模型; 3、如何控制异常; 4、性能优化,使得 TCC 模式能够满足更高的业务需求。

    解决分布式事务的demo (可靠消息服务 tcc),作者:battcn开源组的 zjzhiqian 同时欢迎大神加入,贡献代码

    解决分布式事务的demo (可靠消息服务 tcc),基于springboot spring mybais dubbo activeMq redis 开源项目tcc zookeeper,基础模块 accounting message user account order模块依赖其它模块 同时本身也是个provider

    tcc-transaction:基于Hyperf的TCC分布式事务

    tcc-transaction有兴趣优化和完善的小伙伴欢迎联系我 vx:ai979126035基于Hyperf的TCC分布式事务Tcc注意事项:并发控制允许空回滚防悬挂控制幂等控制目前支持钉钉以及邮件推送事务失败通知,感谢使用方法:composer ...

    TCC-Transaction分布式事务DEMO

    TCC-Transaction分布式事务DEMO,基于Mysql数据库的事务,包括分布式提交和回滚,例子完成,可以正常跑,基于Maven构建的项目

    分布式事务专题-v1.1.docx

    分布式系统会把一个应用系统拆分为可独立部署的多个服务,因此需要服务与服务之间远程协作才能完成事务操作,这种分布式系统环境下由不同的服务之间通过...分布式事务解决方案之最大努力通知;分布式事务综合案例分析;

    分布式事务学习资料等

    - 了解分布式事务产生的原因 - 知道几种分布式事务解决方案:XA、TCC、消息事务、TA、SAGA - 知道分布式事务各种解决方案的优缺点和使用场景 - 学会使用Seata来解决分布式事务

    微服务架构的分布式事务解决方案,完整31讲-龙果学院

    分布式事务课程列表: 第01节--课程介绍 第02节--解决方案的效果演示 第03节--常用的分布式事务解决方案介绍 第04节--消息发送一致性方案探讨(可靠消息的前提保障) 第05节--JMS规范的消息发送与接收特点 第...

    基于本地消息表的分布式事务处理-tcc.zip

    基于本地消息表的分布式事务处理-tcc

    分布式事务方案培训

    分布式事务方案培训,tcc,lcn分布式事务选型,性能分析

    分布式事务.png

    分布式事务设计:分布式基础理论(TCC,BASE,2PS等),以及利用zookeeper作为控制中心设计分布式事物。

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

    从本地事务介绍开始,介绍分布式...使读者了解分布式事务产生的原因,了解几种分布式事务解决方案:XA、TCC、消息事务、TA、SAGA,了解分布式事务各种解决方案的优缺点和使用场景,以及学会使用Seata来解决分布式事务

    微服务架构-分布式事务-视频教程

    微服务架构,分布式事务处理机制,包含常用的分布式事务解决方案。TCC型分布式事务方案,最大努力通知方案,可靠消息服务的设计与实现等。包含分布式服务框架duboo 的原理及使用案例。

Global site tag (gtag.js) - Google Analytics