崩溃容错(CFT)是分布式系统中的一种容错机制,它假设系统中的节点可能会因为故障而停止响应(如宕机、进程崩溃、网络断开),但不会发送错误或伪造的消息

在 CFT 模型中,节点被认为是“诚实”的,它们要么正常工作,要么完全停止工作。

核心假设

  • 拜占庭环境:节点不会恶意篡改数据,也不会发送虚假信息。
  • 故障模式:节点故障仅表现为停止响应(Crash-Stop)。

典型算法

CFT 类算法通常用于可信的内部网络环境(如数据中心内部):

  1. Paxos:由 Leslie Lamport 提出的第一个完备的共识算法,是许多现代共识算法的基础。
  2. Raft:旨在比 Paxos 更易于理解和实现,目前在工业界应用最广泛(如 etcd, Consul)。
  3. ZAB (ZooKeeper Atomic Broadcast):专门为 ZooKeeper 设计的原子广播协议。

容错能力

在包含 个节点的系统中,CFT 算法通常可以容忍 个节点崩溃,其中: 即只要超过半数(多数派 (Quorum))的节点正常运行,系统就能达成共识。

应用场景

  • 分布式数据库:如 TiDB, CockroachDB。
  • 配置管理:如 etcd, ZooKeeper。
  • 服务发现:如 Consul。
  • 私有云/内网环境:节点之间存在天然的信任关系。