多活存储系统中的一致性协议(Consensus Protocol)—— 解析 Raft/Paxos 在工程中的实际落地

24 阅读1分钟
  1. 前言:为什么理解一致性协议,是成为架构师的分水岭?

    • 分布式系统都绕不开一致性
    • MQ、注册中心、配置中心、KV 存储、数据库副本全靠它
    • 但多数开发只“会用,不会理解”
  2. 为什么需要一致性协议?

    • 多副本存储
    • Leader 选举
    • 元数据一致
    • 跨节点日志复制
    • 网络分区下仍需保持一致性
  3. 三大经典协议对比

    协议优点缺点应用场景
    Paxos理论最强工程落地难数据库、分布式元数据
    Raft工程友好Leader 压力集中etcd、Consul、TiKV
    Zab顺序广播依赖 ZooKeeperZooKeeper
  4. Raft 的工程核心机制

    • Leader 选举
    • 日志复制(AppendEntries)
    • 安全性保证
    • 一致性读
    • Snapshot + 压缩日志
  5. 一致性协议的工程难点

    • 网络抖动导致多 Leader 竞争
    • 日志不一致 → 覆盖问题
    • 全量同步耗时巨大
    • 写入压力一股脑压到 Leader
  6. 真正企业级的落地方案

    • 多 Region 分区 + 局部一致
    • 读写分离策略(弱一致读)
    • Leader Rotation 技术
    • Raft Proxy 层(隐藏底层复杂性)
  7. 案例:配置中心(Config Center)的一致性实现

    • 配置发布 → 写入 Leader → 日志复制 → 多节点同步
    • Client Watch → 增量通知 → 最终一致性生效
    • 如何避免“脑裂”?
    • 如何保证变更可回放?
  8. 总结

    • Paxos 是理论
    • Raft 是工程
    • 理解一致性协议,才能真正看懂云原生时代的基础设施