在分布式系统中,二阶段提交(Two-Phase Commit,简称 2PC)是一种经典的协议,用于保证多个参与方在分布式事务中的一致性。
2PC 协议由两个阶段组成:
- 准备阶段(Prepare Phase):
a. 协调者(通常是事务管理器)向所有参与方发送准备请求,并等待它们的响应。参与方执行本地事务,并将事务的执行结果和准备状态返回给协调者。 - 提交阶段(Commit Phase):
a. 如果所有参与方的准备请求都成功,并且没有发生错误,协调者则发送提交请求给所有参与方。参与方接收到提交请求后,将正式提交事务,并释放相关资源。
如果在任何一个参与方的准备阶段出现错误、超时或者拒绝提交的情况,协调者将发送回滚请求给所有参与方,要求它们撤销之前的操作并回滚事务。