两阶段提交(Two-Phase Commit, 2PC) 是分布式系统中实现强一致性事务的核心协议,用于确保跨多个节点的操作要么全部成功提交,要么全部失败回滚。其核心思想是通过协调者(Coordinator)与参与者(Participant)的协作,解决分布式事务的原子性问题。
两阶段提交的流程
阶段一:准备阶段(Prepare Phase)
-
事务发起
- 协调者向所有参与者发送 **
PREPARE** 请求,包含事务的详细信息(如操作类型、数据版本等)。
- 协调者向所有参与者发送 **
-
参与者执行事务
- 参与者收到请求后,执行本地事务操作(如写入数据),但不提交。
- 参与者记录事务的 undo 日志(用于回滚)和 redo 日志(用于故障恢复)。
-
反馈准备状态
- 参与者向协调者返回 **
YES(可提交)或 NO**(不可提交)。 - 若参与者无法提交(如磁盘满、死锁),直接返回失败。
- 参与者向协调者返回 **
阶段二:提交阶段(Commit Phase)
-
协调者决策
- 如果所有参与者均返回 **

最低0.47元/天 解锁文章
809

被折叠的 条评论
为什么被折叠?



