Q11·问题驱动

为什么分布式系统需要共识算法?

深入解答

共识算法解决的核心问题是在不可靠的环境中达成一致。在 L8(操作系统)层面,进程可能崩溃(crash failure),网络可能分区(partition),消息可能延迟或丢失;在 L11(数据密集型软件)层面,分布式数据库需要多个副本保持一致, leader 选举需要节点达成一致;在 L13(分布式架构)层面,FLP 不可能定理指出在异步网络中,即使只有一个节点可能故障,也不存在确定性的共识算法。解决方案:Paxos 和 Raft 通过多数派投票(quorum)实现共识,容忍 (n-1)/2 个节点故障;PBFT(实用拜占庭容错)可以容忍恶意节点(Byzantine failure),但性能较低。应用场景:分布式锁、leader 选举、分布式事务提交。