Paxos 是分布式系统中用于达成共识的经典算法,其核心思想是通过**提案(Propose)-接受(Accept)-确认(Confirm)**的多轮交互,确保在部分故障的情况下系统仍能保持一致性。以下是关键要点:

核心思想 💡

  • 安全性:所有参与者最终达成一致的值
  • 活性:在多数节点正常运行时,系统能持续推进决策
  • 容错性:容忍网络分区和节点故障(需多数节点存活)

算法流程 📚

  1. 准备阶段(Prepare)

    • 提议者(Proposer)向所有接受者(Acceptor)发送 prepare 请求,附带提案编号
    • 接受者若未承诺过更高编号的提案,将返回其当前最高编号的提案值(若存在)
  2. 接受阶段(Accept)

    • 提议者根据准备阶段的响应,选择一个提案值(通常为最大值)并发送 accept 请求
    • 接受者若未承诺更高编号,将接受该提案并返回确认信息
  3. 确认阶段(Confirm)

    • 提议者收集多数接受者的确认,最终将提案值提交为系统决策
    • 所有节点同步更新状态

应用场景 🌐

  • 分布式数据库一致性维护(如 Raft、Zab 等协议底层)
  • 分布式系统配置管理
  • 云服务中的自动故障转移

深入学习 🔗

Paxos_Algorithm
Consensus_Mechanism