Quorum & Raft & Paxos

Quorum 协议简介

Quorum 协议是一种用于在分布式系统中实现一致性的机制,广泛应用于数据库、分布式存储和分布式共识算法中。该协议核心思想基于多数派原则(Majority Principle),即操作的成功执行需获得多数节点的确认(称为 Quorum)。

在一个副本组(Replica Group)中,系统通常要求操作(如读写)至少获得节点数的一半加一的确认。例如,在一个包含 5 个节点的系统中,Quorum 的大小为 3。只要超过半数节点响应,即使其余节点故障或网络不可达,系统依旧能保持一致性。

工作原理

  • 写操作:数据需写入至少达到 Quorum 数量的节点,写操作才能被确认成功。
  • 读操作:数据需从至少 Quorum 数量的节点读取,以获得一致性的数据视图。

优势与局限

  • 容错性强:系统可容忍小于 Quorum 数量的节点故障。
  • 可用性高:只需 Quorum 存活节点即可继续对外服务。
  • 实现简单:适用于多种分布式系统。

然而,Quorum 协议也存在一定限制,比如高并发下可能导致资源竞争激烈,以及一致性和性能之间的权衡。


RAFT 协议简介

Raft 是一种用于实现分布式系统一致性的共识算法,由 Diego Ongaro 和 John Ousterhout 于 2013 年提出。相较于 Paxos,Raft 更加直观、易于理解和实现。

节点角色

  • Leader(领导者):处理客户端请求并复制日志。
  • Follower(跟随者):被动接收来自 Leader 的指令。
  • Candidate(候选者):在选举中竞争成为新 Leader。

工作机制

  1. 领导者选举

    • 初始所有节点为 Follower,定时接收心跳信号(Heartbeat)。
    • 若在一段时间内未收到心跳,节点转为 Candidate,并发起投票请求。
    • 获得多数节点选票后,Candidate 成为 Leader。
  2. 日志复制

    • 客户端请求发送至 Leader。
    • Leader 将命令记录在日志,并复制到所有 Follower。
    • 一旦超过半数节点写入成功,则确认该日志条目提交。

特点

  • 简洁清晰的流程设计
  • 强一致性保证
  • 故障容忍能力强

Raft 被广泛用于分布式数据库、服务注册与发现系统等领域,如 etcd、Consul、TiKV 等。


Paxos 协议简介

Paxos 是由 Leslie Lamport 提出的一种经典分布式一致性协议,具有高度容错能力,适用于系统节点可能出现宕机或网络异常的情况。

节点角色

  • Proposer(提议者):发起提案,试图使提案被接受。
  • Acceptor(接受者):对提案进行投票,决定是否接受。
  • Learner(学习者):学习并记录最终被接受的提案。

核心流程

Paxos 协议包括两个阶段:

  1. Prepare 阶段

    • Proposer 生成唯一编号并发出 Prepare 请求。
    • Acceptor 若尚未接受更高编号的提案,则承诺不再接受比此编号小的提案,并返回已接受的最大编号提案。
  2. Accept 阶段

    • Proposer 根据返回结果发起 Accept 请求。
    • 若 Acceptor 接受该提案,并且有多数 Acceptor 接受此提案,则该提案被批准(Chosen)。

特点

  • 高度容错性:在大多数节点正常的前提下,系统可继续运作。
  • 一致性保证强:确保所有节点最终达成相同决议。
  • 实现复杂度高:相比 Raft,Paxos 更难理解和实现。

三者对比总结

特性Quorum 协议RAFT 协议Paxos 协议
类型一致性协议框架共识算法共识算法
操作机制多数副本确认领导者选举 + 日志复制两阶段投票
一致性保证强一致性强一致性
容错能力较高
易用性/可读性较易理解易于实现与理解理论复杂,难以实现
应用示例MongoDB, Cassandraetcd, Consul, TiKVChubby, Google Spanner等

各协议适用的系统场景不同,选择时应根据系统需求的可用性、一致性要求及实现复杂度做权衡。


参考资料:

  • Diego Ongaro 和 John Ousterhout,《In Search of an Understandable Consensus Algorithm》
  • Leslie Lamport,《Paxos Made Simple》
  • open-source 项目文档如 etcd、Cassandra、TiKV 等
  • 腾讯《深入浅出分布式一致性算法》系列(WeRead 链接)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值