资讯专栏INFORMATION COLUMN

说说分布式事务(四)

Anchorer / 2704人阅读

摘要:最终一致性二基于的分布式事务补偿机制序列图异常场景处理预创建订单失败如果实际预创建订单成功订单定时补偿机制定时删除这部分订单不影响数据一致性下单失败预扣减库存失败如果预扣减库存真实失败则下单失败订单由定时补偿机制定时删除其它应用参照场景的处

最终一致性(二) 基于MQ的分布式事务补偿机制 序列图

异常场景处理

预创建订单失败:如果实际预创建订单成功,订单定时补偿机制,定时删除这部分订单,不影响数据一致性,下单失败

预扣减库存失败:如果预扣减库存真实失败,则下单失败(订单由定时补偿机制定时删除,其它应用参照场景4的处理方式,下单失败;如果实际预扣减库存成功,参照场景4的处理方式,下单失败

实际创建订单失败:如果创建订单真实失败(不需要发送下单失败消息,防止实际创建订单成功场景)
,订单的预处理数据通过订单的定时补偿机制尝试删除(需要考虑事务处理时间,将超过某个时间范围该事务还处于预处理状态的订单删除),下单失败;如果实际创建订单成功,其它应用参照场景4的处理方式,下单成功(提示用户下单失败)

发送订单创建成功消息失败/库存服务由于各种原因没有接到下单成功消息:库存服务定时轮询处理数据(需要考虑事务处理时间,将超过某个时间范围该事务还处于预处理状态的订单筛选出来),询问订单服务改订单Id对应的订单是否创建成功,根据订单创建成功与否选取相应的事务补偿机制

TCC的比较

TCC是把所有的订单创建步骤平等看待,只要有一个失败,整个下单流程全部失败(比较TCC里面的confirm失败和基于MQ实际创建订单失败的补偿难易程度)

TCC是通过发消息给TCC服务器,然后由TCC服务调用应用服务;基于MQ的分布式事务补偿机制,是通过将消息发送到MQ,然后由应用自己去监听MQ的事件

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/64927.html

相关文章

  • 说说布式事务()

    摘要:最终一致性二基于的分布式事务补偿机制序列图异常场景处理预创建订单失败如果实际预创建订单成功订单定时补偿机制定时删除这部分订单不影响数据一致性下单失败预扣减库存失败如果预扣减库存真实失败则下单失败订单由定时补偿机制定时删除其它应用参照场景的处 最终一致性(二) 基于MQ的分布式事务补偿机制 序列图 showImg(https://segmentfault.com/img/bVzeHX);...

    qiangdada 评论0 收藏0
  • 说说布式事务(三)

    摘要:最终一致性一简介是由支付宝架构师提供的一种柔性解决分布式事务解决方案主要包括三个步骤流程的关键流程如下图以下单和扣减库存为例子预生成订单失败了为什么要通过执行预处理数据回滚可能预生成订单成功但是接口返回失败超时失败所以预处理在某些情况下是有 最终一致性(一) TCC 简介 TCC是由支付宝架构师提供的一种柔性解决分布式事务解决方案,主要包括三个步骤:showImg(/img/bVzc6...

    opengps 评论0 收藏0
  • 为Java程序员金三银精心挑选的300余道Java面试题与答案

    摘要:为程序员金三银四精心挑选的余道面试题与答案,欢迎大家向我推荐你在面试过程中遇到的问题我会把大家推荐的问题添加到下面的常用面试题清单中供大家参考。 为Java程序员金三银四精心挑选的300余道Java面试题与答案,欢迎大家向我推荐你在面试过程中遇到的问题,我会把大家推荐的问题添加到下面的常用面试题清单中供大家参考。 前两天写的以下博客,大家比较认可,热度不错,希望可以帮到准备或者正在参加...

    tomorrowwu 评论0 收藏0
  • 说说布式事务(一)

    2PC(两阶段事务提交) 两阶段事务提交简化图 showImg(/img/bVsV61); 两阶段事务提交异常点 节点本身故障(比如Down机) 节点之间通信故障 两阶段事务提交错误点分析 showImg(/img/bVsV56); 说明 图中有问号的条目,是我不确定的地方,但是不影响这个分布式事务的结果 图中的感叹号条目,个人感觉其实也是允许先发消息再记录日志的,但是如果这样子做以后发生D...

    chunquedong 评论0 收藏0
  • 说说布式事务(二)

    摘要:以两阶段提交来说,主持人收到一个提案请求,打电话跟每个组员询问是否通过并统计回复,然后将最后决定打电话通知各组员。三阶段提交即是引入了另一个步骤,主持人打电话跟组员通知请准备通过提案,以避免没人知道真实决定而造成决定不一致的失业危机。 3PC 以两阶段提交来说,主持人收到一个提案请求,打电话跟每个组员询问是否通过并统计回复,然后将最后决定打电话通知各组员。要是主持人在跟第一位组员通完电...

    ysl_unh 评论0 收藏0

发表评论

0条评论

Anchorer

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<