分布式的共识算法

分布式的共识算法

分布式系统的共识算法是指在分布式环境中多个节点就某些信息达成一致的算法。这些算法在分布式系统中至关重要,尤其是在容错和保证一致性方面。

Paxos 算法

Paxos 算法是一种经典的分布式共识算法,由 Leslie Lamport 在 1990 年代提出。它旨在解决分布式系统中多个节点就某些信息达成一致的问题,尤其是在存在网络分区或节点故障的情况下。Paxos 算法特别强调强一致性,即所有参与的节点最终都会同意同一个值。

Paxos 算法包括两个主要的角色:ProposerAcceptor 。此外,还有一种角色叫做 Learner,用于监听并记录共识的结果。以下是 Paxos 算法的基本步骤:

  1. Prepare 阶段 :
    • Proposer 选择一个提案编号 n,并向一组 Acceptor 发送一个 Prepare(n) 消息。
    • Acceptor 收到 Prepare(n) 消息后,如果它尚未对编号大于等于 n 的提案做出承诺,它会回复一个 Promise 消息,其中包含它先前承诺过的最大编号的提案值(如果有的话)。
    • Proposer 收集大多数 Acceptor 的 Promise 消息。
  2. Accept 阶段 :
    • Proposer 选择一个值 v(通常是它收到的 Promise 消息中最大的提案值,如果没有则可以自由选择),并发送一个 Accept(n, v) 消息给所有 Acceptor。
    • Acceptor 收到 Accept(n, v) 消息后,如果它已经回复了 Prepare(n) 的 Promise 消息,它就会接受该提案并记录提案值 v。
    • Proposer 收集大多数 Acceptor 的 Accept 消息。
  3. Learn 阶段 :
    • Learner 收集大多数 Acceptor 的 Accept 消息后,它会学习到提案值 v,并将其传播给所有参与者。

Raft 算法是一种分布式共识算法,由 Diego Ongaro 和 John Ousterhout 在 2014 年提出。它旨在简化分布式系统中多个节点就某些信息达成一致的过程,并且相比 Paxos 算法更加直观易懂。Raft 算法特别强调通过选举领导者来简化共识过程,并且易于理解和实现。

Raft 算法的基本原理

Raft 算法的核心在于通过选举领导者来简化共识过程。它包括三种节点状态:FollowerCandidateLeader。以下是 Raft 算法的基本步骤:

  1. 选举领导者 :
    • 当 Follower 没有收到领导者的心跳消息或投票请求一段时间后,它会变成 Candidate 并开始选举过程。
    • Candidate 会发送投票请求给其他节点,并给自己投一票。
    • 如果 Candidate 收集到大多数节点的投票,它将成为 Leader。
  2. Leader 状态 :
    • Leader 定期发送心跳消息给其他节点,以保持其领导地位。
    • 当 Leader 收到客户端的请求时,它将请求添加到日志中,并将请求发送给其他节点。
    • 当大多数节点记录了相同的日志条目后,Leader 认为该条目已经被提交,并将提交信息发送给其他节点。
  3. Follower 状态 :
    • Follower 节点接收来自 Leader 的命令和心跳消息。
    • 如果长时间没有接收到任何消息,Follower 会变成 Candidate 并发起新的选举。

Nacos中使用了Raft算法来保证服务注册与发现的一致性。

相关推荐
Sui_Network4 小时前
Sui 2025→2026 直播回顾中文版
大数据·前端·人工智能·深度学习·区块链
quant_19864 小时前
外汇期货实时行情 API 使用教程
经验分享·后端·websocket·程序人生·金融·区块链
昌sit!5 小时前
hadoop集群搭建
大数据·hadoop·分布式
MicroTech20257 小时前
微算法科技(NASDAQ :MLGO)构建量子安全区块链架构,增强后量子数据安全性技术介绍
科技·安全·区块链
左灯右行的爱情7 小时前
Kafka专辑- 消息队列是什么
分布式·kafka
CryptoPP7 小时前
对接BSE交易所获取数据。
python·金融·数据挖掘·数据分析·区块链
小股虫8 小时前
让系统“杀不死”:同步与异步场景下的弹性设计模式手册
分布式·微服务·设计模式·架构·团队建设·方法论
前端世界8 小时前
鸿蒙分布式权限管理实战指南:架构原理 + 可运行 Demo
分布式·架构·harmonyos
西***63479 小时前
「技术筑基 医疗提质」—— 分布式视频通讯系统在医疗领域的应用解析
分布式·音视频
小李独爱秋9 小时前
计算机网络经典问题透视:拒绝服务(DoS)与分布式拒绝服务(DDoS)攻击全景解析
运维·服务器·分布式·计算机网络·ddos