后端岗位面试题更新 2026-08-05

在分布式事务或一致性协议中,为什么通常采用两阶段提交(2PC)而不是三阶段提交(3PC)?请从协议设计目的、阶段划分和异常处理角度解释。

字节跳动后端开发互联网/IT问题拆解技术原理方案权衡

考察说明

考察对两阶段与三阶段提交协议差异的理解及设计权衡

回答思路

  1. 明确指出问题上下文通常是分布式事务提交协议
  2. 对比两阶段与三阶段的阶段划分(2PC:准备、提交;3PC:准备、预提交、提交)
  3. 分析3PC引入预提交阶段的目的(解决协调者故障阻塞)
  4. 讨论2PC在协调者故障时的阻塞问题及实际工程妥协
  5. 说明协议选择受一致性、可用性和实现复杂度影响