【一线大厂Java面试题合集】第51篇-分布式事务解决方案
第51篇:分布式事务解决方案
模块:分布式系统 |难度:高级 |面试频率:★★★★★
1. 2PC / 3PC 的原理和缺点?
2PC(两阶段提交)
2PC(Two-Phase Commit)是一种强一致性分布式事务协议,引入一个**协调者(Coordinator)**角色来统一调度所有参与者(Participant)的本地事务提交。
阶段一:准备阶段(Prepare / Vote Phase)
- 协调者向所有参与者发送
prepare请求,询问是否可以提交事务。 - 参与者执行事务操作(写数据、记录 undo/redo 日志),但不提交。
- 参与者如果执行成功,回复
YES;失败则回复NO。 - 协调者等待所有参与者响应,若有一个返回
NO或超时,则进入回滚流程。
阶段二:提交 / 回滚阶段(Commit / Rollback Phase)
- 如果所有参与者都回复
YES,协调者发送commit
