二阶段提交 2PC
2PC(Two-phase commit protocol)中文叫二阶段提交。二阶段提交是一种强一致性提交。引入一个事务协调者的角色来协调管理个参与者的提交和回滚。
二阶段指的是 《准备(投票)》和《提交》两个阶段。
二阶段之准备阶段
准备阶段 协调者 给 各个参与者发送准备命令。准备命令除了提交事务之外啥事都做完了。协调者同步等待所有资源的响应。
二阶段之提交阶段
提交阶段有可能产生两个操作:提交和回滚。
如果第一阶段所有参与者都返回准备成功,那么协调者向所有参与者发送提交事务命令。等待所有事务提交成功之后,返回事务执行成功。
假如在第一阶段有一个参与者返回失败,那么协调者就会向所有参与者发送回滚事务的请求,即分布式事务执行失败。 image.png
如果第二阶段提交失败了,就不停的重试。直到成功为止,如果不行就人工介入处理。
网友评论