共识算法是分布式系统的基石。它的目标是:在保证容错性可用性的前提下,让多个节点就某件事(如数据状态、日志顺序)达成一致

核心挑战

在分布式环境下,达成共识面临诸多挑战:

  • 网络不可靠:延迟、丢包、乱序。
  • 节点故障:宕机、重启。
  • 恶意行为:节点伪造信息(拜占庭故障)。

关键概念

为了理解共识算法,需要先掌握以下基础概念:

典型算法

根据对故障的容忍程度,共识算法分为两大类:

故障容错 (CFT)

假设节点只会宕机,不会说谎。

  • Paxos:共识算法的鼻祖。
  • Raft:更易于理解和实现的工业级标准。

拜占庭容错 (BFT)

假设节点可能会恶意造假。

  • PBFT:实用的拜占庭容错算法。
  • PoW / PoS:区块链中使用的共识机制。