分布式协议Raft和Paxos详解

这篇具有很好参考价值的文章主要介绍了分布式协议Raft和Paxos详解。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一、Raft是一种相对简化的分布式一致性算法,它由Diego Ongaro和John Ousterhout于2013年提出。与Paxos相比,Raft的设计目标是使一致性问题更易于理解、实现和部署。

Raft协议核心思想是将一致性问题分解为几个关键组件,包括领导者选举、日志复制和安全性。

  1. 领导者选举:Raft协议通过选举一个节点作为领导者来协调整个系统的操作。每个节点在初始状态下都是跟随者(Follower)。跟随者只负责接收来自领导者或候选者的指令,并进行相应的操作。如果跟随者在一段时间内没有接收到领导者的心跳信号,则会触发新的选举过程。选举过程中,节点会转变为候选者(Candidate),并向其他节点发送投票请求。如果候选者得到多数节点的支持,则成为新的领导者。

  2. 日志复制:一旦选出领导者,它就负责接收客户端的操作请求并将其转换为日志条目(Log Entries)。领导者将这些日志条目广播给其他节点,并要求它们复制这些条目以保持一致性。当大多数节点(大致上半数以上)确认复制成功后,领导者将该日志条目提交(Commit),并将结果应用于状态机。然后领导者通知其他节点该日志已经提交,其他节点也可以将其应用到状态机上。这样,整个系统就保持了数据的一致性。

  3. 安全性:Raft协议通过限制领导者的行为来确保安全性。领导者在向其他节点发送日志条目之前,必须等待大多数节点(包括自身)确认前一条日志已经复制成功。这样可以防止过期的领导者覆盖了新的日志条目。如果领导者失效,系统会触发新的选举过程,确保选出新的领导者。

总体而言,Raft算法的设计相对清晰,并且易于理解和实现。它提供了领导者选举、日志复制和安全性等基本机制,以实现分布式系统中的一致性。由于其简单性和可理解性,Raft被广泛用于构建可靠的分布式系统。

二、Paxos协议是一种分布式一致性协议,由Leslie Lamport于1990年提出。它被广泛应用于分布式系统中,用于解决在异步网络环境下的一致性问题。

Paxos协议的核心思想是通过多个阶段的消息传递和投票来达成一致。以下是Paxos协议的基本流程:

  1. 阶段一:准备(Prepare)

    • 提议者(Proposer)选择一个提案号(Proposal Number),并向多个接受者(Acceptor)发送准备请求。
    • 接受者收到准备请求后,如果收到的提案号大于等于之前的最高提案号,则接受者返回一个承诺(Promise),其中包含接受者之前接受的最高提案号及其对应的提案值。
    • 如果接受者已经接受了某个提案,则将该提案的提案号及其对应的提案值作为返回承诺的一部分。
  2. 阶段二:接受(Accept)

    • 如果提议者收到了大多数接受者返回的承诺,则提议者可以发送接受请求。
    • 接受请求中包含提议者选择的提案号以及根据收到的承诺确定的提案值。
    • 接受者收到接受请求后,如果接受者收到的提案号大于等于之前承诺的最高提案号,则接受请求,并返回一个接受回复(Accepted)。
    • 如果接受者接受了某个提案,则将接受回复中的提案号及其对应的提案值记为当前接受的提案。
  3. 阶段三:学习(Learn)

    • 当提议者收到大多数接受者返回的接受回复后,提议者知道自己的提案已经被大多数节点接受。
    • 提议者可以发送学习请求(Learn Request)来广播已经被接受的提案。
    • 接受者收到学习请求后,将保存该提案并告知其他节点。

Paxos协议通过阶段一和阶段二的消息传递和投票过程,保证了在异步网络环境下的一致性。协议要求提议者需要得到大多数接受者的确认才能继续推进,以确保系统的一致性。文章来源地址https://www.toymoban.com/news/detail-605560.html

到了这里,关于分布式协议Raft和Paxos详解的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 分布式「走进分布式一致性协议」从2PC、3PC、Paxos 到 ZAB

    设计一个分布式系统必定会遇到一个问题—— 因为分区容忍性(partition tolerance)的存在,就必定要求我们需要在系统可用性(availability)和数据一致性(consistency)中做出权衡 。这就是著名的 CAP 一致性(Consistency)是指多副本(Replications)问题中的数据一致性。关于分布式

    2024年02月03日
    浏览(56)
  • 一篇文章让你弄懂分布式一致性协议Paxos

    Paxos算法由Leslie Lamport在1990年提出,它是少数在工程实践中被证实的强一致性、高可用、去中心的分布式协议。Paxos协议用于在多个副本之间在有限时间内对某个决议达成共识。Paxos协议运行在允许消息重复、丢失、延迟或乱序,但没有拜占庭式错误的网络环境中,它利用“大

    2024年02月09日
    浏览(35)
  • 【分布式】分布式共识算法 --- RAFT

    CAP原则又称CAP定理,指的是在一个分布式系统中,一致性(Consistency)、可用性(Availability)、分区容错性(Partition tolerance) It states, that though its desirable to have Consistency, High-Availability and Partition-tolerance in every system, unfortunately no system can achieve all three at the same time. 在分布式系

    2024年02月06日
    浏览(33)
  • 分布式一致性算法Paxos

            Paxos算法是Lamport宗师提出的一种基于消息传递的分布式一致性算法,是目前公认的解决分布式一致性问题最有效的算法之一。Google Chubby的作者Mike Burrows曾经狂妄的说过这个世界上只有一种一致性算法,那就是Paxos,其它的算法都是残次品。         Paxos算法是

    2023年04月16日
    浏览(48)
  • 【分布式共识算法】Basic Paxos 算法

    basic paxos算法:描述的是多个节点就某个值达成共识。 muti-paxos 算法:描述的是执行多个basic paxos实例,就一系列值达成共识。 共识其实,比如当多个客户端请求服务器,修改同一个值X 多个阶段达成共识。 角色:提议者、接受者、学习者。 提议者 :说白了就是提出一个值,

    2024年02月12日
    浏览(21)
  • 分布式共识 - Raft 算法

    本文由 SnailClimbopen in new window 和 Xieqijunopen in new window 共同完成。 Raft协议由Diego Ongaro和John Ousterhout(斯坦福大学)开发,Diego于2014年获得了博士学位。Raft的设计是为了更好地理解如何实现一致性,考虑到它的前身Paxos算法,由Lesli Lamport开发,非常难以理解和实现。因此,Di

    2024年02月20日
    浏览(27)
  • 提升Raft以加速分布式键值存储

    Raft是当前广泛使用的共识算法。流行的系统,如Kafka、Cockroach DB、MongoDB、Neo4j、Splunk等,都使用Raft来实现共识。系统要么是最终一致性的,要么是强一致性的。线性一致性是一致性模型中最强大的,但实现它可能很耗时。键值数据库出现在市场上,以避免SQL数据库的复杂性并

    2024年01月19日
    浏览(26)
  • 聊聊分布式架构09——分布式中的一致性协议

    目录 01从集中式到分布式 系统特点 集中式特点 分布式特点 事务处理差异 02一致性协议与Paxos算法 2PC(Two-Phase Commit) 阶段一:提交事务请求 阶段二:执行事务提交 优缺点 3PC(Three-Phase Commit) 阶段一:CanCommit 阶段二:PreCommit 阶段三:doCommit 优缺点 Paxos算法 拜占庭将军问题

    2024年02月08日
    浏览(37)
  • 分布式【Zookeeper ZAB协议】

    1.1 什么是Zab协议? Zab协议的全称是 Zookeeper Atomic Broadcast (Zookeeper原子广播)。 Zookeeper 是通过 Zab 协议来保证分布式事务的最终一致性 。 Zab协议是为分布式协调服务Zookeeper专门设计的一种 支持崩溃恢复 的 原子广播协议 ,是Zookeeper保证数据一致性的核心算法。Zab借鉴了Pa

    2024年02月03日
    浏览(33)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包