美文网首页06 分布式技术
分布式事务的典型处理方式

分布式事务的典型处理方式

作者: 秦汉邮侠 | 来源:发表于2018-03-20 22:42 被阅读11次

参考来源

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

  1. 柔性事务和刚性事务
  2. 两阶段提交(2PC)型
    2、事务补偿型(TCC事务):
    3、异步确保型
    4、最大努力型
  3. 柔性事务和刚性事务
    柔性事务满足BASE理论(基本可用,最终一致)
    刚性事务满足ACID理论
    本文主要围绕分布式事务当中的柔性事务的处理方式进行讨论。

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

  1. 两阶段提交(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系统中的分布式事务处理
分布式 事务
发表评论

撰写评论

相关文章

  • 分布式事务的典型处理方式

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

  • 分布式事务处理方式

    分布式事务的典型处理方式 柔性事务和刚性事务 柔性事务满足BASE理论(基本可用,最终一致)。 刚性事务满足ACI...

  • 分布式事务概论

    by shihang.mai 分布式事务 传统事务 传统事务(典型:mysql)有以下特性: 原子性A(Atomi...

  • 分布式事务

    最近整理了下分布式事务相关知识及典型应用场景解决方案,主要内容如下: 1、分布式事务1)事务简介2)本地事务讲解3...

  • 分布式事务与分布式锁

    一、分布式事务 什么事分布式事务 分布式事务就是指事务的资源分别位于不同的分布式系统的不同节点之上的事务。 分布式...

  • 分布式事务

    目录 分布式事务解决方案 长事务: saga 短事务: 设计的时候尽量短事务,能不用分布式事务尽量不用,分布式事务...

  • 微服务分布式事务--破局

    微服务架构下分布式事务设计实战 商品 订单 支付 分布式事务->长事务本地事务->短事务 分布式事务: 比如 下...

  • 分布式事务

    一、什么是分布式事务 二、分布式事务产生的原因/分布式事务的应用场景 三、分布式事务的基础/理论 CAP/BASE...

  • ATOMIKOS+JTA分布式事务记录

    ATOMIKOS+JTA是用来分布式事务的中间件,那么什么是分布式事务呢? 事务,分为单机事务,分布式事务;单机事...

  • MySQL分布式事务支持

    MySQL分布式事务介绍 InnoDB存储引擎提供了对XA事务的支持,并通过XA事务来支持分布式事务的实现。分布式...

网友评论

    本文标题:分布式事务的典型处理方式

    本文链接:https://www.haomeiwen.com/subject/upuiqftx.html