事务执行状态说明

分布式事务使用两阶段提交协议(Two-Phase Commit Protocol,简称 2PC)来保证事务执行的原子性。

2PC 包含两个阶段:

  • 第一阶段,也称准备阶段。由事务发起者向各参与者发送请求,询问参与者是否准备好执行事务。

  • 第二阶段,也称提交阶段。在一阶段所有参与者都确认可以执行事务后,各参与者开始分别执行事务分支。所有分支都成功则事务数据提交成功,否则,所有分支都进行数据回滚操作。

2PC

事务在某一时间点可能处在以下状态之一:

  • 初始化:应用发起事务

  • 进行中

    • 准备中:一阶段操作中

    • 提交中:一阶段结束,正在二阶段的提交操作中

    • 回滚中:一阶段结束,因为某些业务失败,正在二阶段的回滚操作中

  • 已结束

    • 已提交:事务结束,事务执行的数据变更已提交

    • 已回滚:事务结束,事务执行的数据变更已回滚

  • 异常

    • 提交异常:一阶段结束,二阶段处理提交操作时出现异常

    • 回滚异常:一阶段结束,二阶段处理回滚操作时出现异常

    • 回查异常:一阶段结束,二阶段处理回查业务接口时出现异常