分布式事务05 两阶段事务

分布式事务 05 两阶段事务

两阶段提交是什么?

  • 定义:称为2PC(2 Phase Commit Protocol),意思为1次事务分为两个阶段,是强一致性、中心化的原子提交协议
  • 参与角色:
    • 协调者:一个,TM, 协调与管理事务
    • 参与者:N个,RM,可以使DB或者某些微服务

两阶段事务分析

以用户下单使用余额+红包的形式完成支付。

假设用户下单操作来自3个系统:下订单、资金账户、红包等系统。下单后支付需要调用资金账户服务与红包服务完成支付
假设100的商品,现使用90元现金与10元红包。

全局提交

  • 1阶段:事务准备
    • TM询问参与者:是否可以提交?
      • 参与者事务执行成功,则返回“同意”
      • 参与者事务执行失败,则返回“终止”
  • 2阶段: 事务提交
    • TM根据应答觉得全局方向,并通知所有参与者执行决定
      • 都同意,则都提交
      • 出现终止提交,则所有参与者都回滚事务

全局回滚

1阶段中出现相应信息为“终止”或相应超时,TM向所有RM发送“回滚操作”的请求,然后参与者向协调者发送“回滚完成”的消息

posted @ 2020-09-25 20:16  AaronPi  阅读(264)  评论(0编辑  收藏  举报