在分布式事务或一致性协议中,为什么通常采用两阶段提交(2PC)而不是三阶段提交(3PC)?请从协议设计目的、阶段划分和异常处理角度解释。
考察说明
考察对两阶段与三阶段提交协议差异的理解及设计权衡
回答思路
- 明确指出问题上下文通常是分布式事务提交协议
- 对比两阶段与三阶段的阶段划分(2PC:准备、提交;3PC:准备、预提交、提交)
- 分析3PC引入预提交阶段的目的(解决协调者故障阻塞)
- 讨论2PC在协调者故障时的阻塞问题及实际工程妥协
- 说明协议选择受一致性、可用性和实现复杂度影响
考察对两阶段与三阶段提交协议差异的理解及设计权衡