【一线大厂Java面试题合集】第51篇-分布式事务解决方案

第51篇:分布式事务解决方案

模块:分布式系统 |难度:高级 |面试频率:★★★★★


1. 2PC / 3PC 的原理和缺点?

2PC(两阶段提交)

2PC(Two-Phase Commit)是一种强一致性分布式事务协议,引入一个**协调者(Coordinator)**角色来统一调度所有参与者(Participant)的本地事务提交。

阶段一:准备阶段(Prepare / Vote Phase)

  1. 协调者向所有参与者发送prepare请求,询问是否可以提交事务。
  2. 参与者执行事务操作(写数据、记录 undo/redo 日志),但不提交
  3. 参与者如果执行成功,回复YES;失败则回复NO
  4. 协调者等待所有参与者响应,若有一个返回NO或超时,则进入回滚流程。

阶段二:提交 / 回滚阶段(Commit / Rollback Phase)

  • 如果所有参与者都回复YES,协调者发送commit