分布式事务使用两阶段提交协议(Two-Phase Commit Protocol,简称 2PC)来保证事务执行的原子性。
2PC 包含两个阶段:
第一阶段,也称准备阶段。由事务发起者向各参与者发送请求,询问参与者是否准备好执行事务。
第二阶段,也称提交阶段。在一阶段所有参与者都确认可以执行事务后,各参与者开始分别执行事务分支。所有分支都成功则事务数据提交成功,否则,所有分支都进行数据回滚操作。
事务在某一时间点可能处在以下状态之一:
初始化:应用发起事务
进行中
准备中:一阶段操作中
提交中:一阶段结束,正在二阶段的提交操作中
回滚中:一阶段结束,因为某些业务失败,正在二阶段的回滚操作中
已结束
已提交:事务结束,事务执行的数据变更已提交
已回滚:事务结束,事务执行的数据变更已回滚
异常
提交异常:一阶段结束,二阶段处理提交操作时出现异常
回滚异常:一阶段结束,二阶段处理回滚操作时出现异常
回查异常:一阶段结束,二阶段处理回查业务接口时出现异常
文档内容是否对您有帮助?