算法学习之:Raft-分布式一致性/共识算法

小白对Raft的理解 小白对Raft的理解 1. Raft简介 1.1 Raft的前世今生 Raft算法它实际上是一种共识算法,脱胎于Paxos算法。因为Paxos算法不好理解,而且实现起来非常复杂,所以Raft算法就此诞生。 1.2 Raft应用场景 Raft在工程领域的应用特别多,比如Redis的哨兵选举机制、InfluxDB的leader选举、Dragonboat、腾讯云的消息队列CMQ等等。经常被用作CP原则的一致性算法。 2.Raft基础 2.1 Raft中的名词概念 在一个Raft集群中,它有n个服务器构成,其 阅读详情

基础介绍

Raft是什么?

Raft is a consensus algorithm that is designed to be easy to understand. It's equivalent to Paxos in fault-tolerance and performance. The difference is that it's decomposed into relatively independent subproblems, and it cleanly addresses all major pieces needed for practical systems. We hope Raft will make consensus available to a wider audience, and that this wider audience will be able to develop a variety of higher quality consensus-based systems than are available today.

 Raft 是一种易于理解的共识算法(Consensus Algorithm)。它在容错性和性能方面与 Paxos 相当。所不同的是,它被分解成了相对独立的子问题,并简洁地解决了实际系统所需的所有主要问题。我们希望 Raft 能让更多人了解共识(Consensus),也希望更多的人能够开发出比现在更高质量的基于共识的系统。

Consensus又是什么?

Consensus is a fundamental problem in fault-tolerant distributed systems. Consensus involves multiple servers agreeing on values. Once they reach a decision on a value, that decision is final. Typical consensus algorithms make progress when any majority of their servers is available; for example, a cluster of 5 servers can continue to operate even if 2 servers fail. If more servers fail, they stop making progress (but will never return an incorrect result).

Consensus typically arises in the context of replicated state machines, a general approach to building fault-tolerant systems. Each server has a state machine and a log. The state machine is the component that we want to make fault-tolerant, such as a hash table. It will appear to clients that they are interacting with a single, reliable state machine, even if a minority of the servers in the cluster fail. Each state machine takes as input commands from its log. In our hash table example, the log would include commands like set x to 3. A consensus algorithm is used to agree on the commands in the servers' logs. The consensus algorithm must ensure that if any state machine applies set x to 3 as the nth command, no other state machine will ever apply a different nth command. As a result, each state machine processes the same series of commands and thus produces the same series of results and arrives at the same series of states.

 Consensus(共识)是容错分布式系统中的一个基本问题。Consensus(共识)涉及多个服务器就某个值达成一致。一旦它们就某个值达成一致,该决定就是最终决定。典型的共识算法会在大多数服务器可用时取得进展;例如,一个由 5 台服务器组成的集群,即使有 2 台服务器出现故障,也能继续运行。如果有更多的服务器出现故障,它们就会停止工作(但绝不会返回错误的结果)。

共识通常出现在复制状态机(state machine)中,这是构建容错系统的一种通用方法。每个服务器都有一个状态机和一个日志。状态机是我们希望实现容错的组件,例如哈希表。在客户端看来,即使集群中的少数服务器出现故障,他们也是在与一个单一、可靠的状态机(leader)进行交互。每个状态机都从日志中获取指令作为输入。在我们的哈希表示例中,日志将包括 set x to 3 这样的命令。共识算法必须确保,如果任何一台状态机将 set x to 3 作为第 n 条命令,其他状态机都不会使用不同的第 n 条命令。因此,每台状态机都会处理相同系列的命令,从而产生相同系列的结果,到达相同系列的状态。

总结:Raft算法是一种共识算法,旨在替代Paxos。它提供了一种在计算系统集群中分布状态机的通用方法,确保集群中的每个节点都同意一系列相同的状态转换。

详细介绍

实现原理:

Raft算法的实现原理主要围绕三个关键部分:领导者选举(Leader Election)、日志复制(Log Replication)和安全性(Safety)。

以下是Raft算法实现原理的详细介绍:

领导者选举(Leader Election)

  • 服务器状态:Raft中的服务器有三种状态:领导者(Leader)、追随者(Follower)和候选者(Candidate)。在初始状态下,所有节点都是追随者(Follower)。
  • 选举触发:当服务器启动时,它默认是追随者(Follower)状态。如果追随者在一段时间内没有收到来自领导者的心跳消息(通常是随机的超时时间),它将转变为候选者(Candidate)状态并发起领导者(Leader)选举。
  • 投票过程:候选者会向集群中的其他服务器请求投票。每个服务器在一个任期内只能投出一票,并且只会投给日志条目不落后于自己的候选者。如果候选者获得了集群中超过半数的投票,它将成为新的领导者。
  • 任期(Term):Raft通过递增的任期号来管理时间,每个成功的领导者选举都会开始一个新的任期。

日志复制(Log Replication)

  • 日志条目:在Raft中,所有的更新都是通过提交日志条目来实现的。客户端的请求会被作为新的日志条目附加到领导者的日志中。
  • 日志同步:领导者会将新的日志条目通过AppendEntries RPC同步给所有的追随者。只有当大多数的追随者都复制了日志条目后,这个条目才会被认为是已提交的,并且可以被应用到状态机中以更新系统状态。
  • 日志一致性:如果追随者的日志与领导者的日志不一致(即出现了“空洞”),追随者会丢弃自己日志中空洞之后的所有条目,并从领导者那里复制缺失的条目以重新同步。

安全性(Safety)

  • 选举限制:Raft通过限制只有拥有最新日志的服务器才能成为领导者来确保安全性。这保证了已经被提交的日志条目不会被覆盖或删除。
  • 提交规则:一个日志条目只有在被大多数服务器复制后才能被认为是已提交的。这确保了即使领导者崩溃,新的领导者也能从大多数服务器中恢复并提交这些条目。
  • 日志压缩:为了限制日志的无限增长,Raft允许领导者和追随者截断旧的已提交的日志条目。但是,在截断之前,领导者必须确保新的领导者也包含了所有已提交的日志条目。

通过这些机制,Raft算法能够在分布式系统中提供强一致性和容错性。同时,它的设计相对简单易懂,使得在实际应用中更容易实现和维护。

注意:在实际实现Raft算法时,需要考虑一些关键细节,以确保算法的正确性和性能。

  1. 超时机制:跟随者在一段时间内未收到领导者的消息时,将触发超时机制并转换为候选者,发起领导者选举。这种机制有助于快速响应领导者故障,保证系统的可用性。
  2. 日志压缩:随着时间的推移,日志会不断增长,可能导致存储空间的浪费和性能下降。Raft算法通过日志压缩(Snapshot)技术来定期删除旧的日志条目,释放存储空间并保持系统的高效运行。
  3. 网络分区处理:在分布式系统中,网络分区是一种常见的故障模式。Raft算法通过领导者选举和日志复制机制来处理网络分区,确保在分区恢复后系统能够迅速恢复一致性。

优缺点:

Raft算法的优缺点主要体现在以下几个方面:

优点:

  1. 简单易懂:Raft算法相较于其他共识算法,如Paxos,设计更加直观和易于理解。这使得开发人员能够更容易地实现和调试分布式系统。
  2. 高可用性:Raft通过领导者选举和日志复制等机制确保了数据的一致性和可靠性。当领导者失效时,Raft能够快速进行新的领导者选举,从而保证系统的高可用性。
  3. 安全性:Raft算法在领导者选举和日志复制等过程中,通过一系列规则和机制保证了系统的安全性,避免了数据丢失或不一致等问题。
  4. 易于实现和维护:Raft算法详细描述了算法的实现细节,使得开发人员能够按照算法内容,按部就班地实现一个可用的分布式系统。同时,由于其简单易懂的特点,也使得系统维护变得更加容易。

缺点:

  1. 性能开销:Raft算法对于每个写操作都需要进行日志复制,这会带来一定的性能开销。相比于其他共识算法如Paxos,Raft算法的性能可能会稍差一些。
  2. 领导者单点故障:在Raft算法中,领导者是负责处理客户端请求和日志复制的节点。如果领导者失效,整个系统的性能和可用性都会受到影响。虽然Raft能够快速进行新的领导者选举,但在选举过程中,系统可能无法处理新的写请求。
  3. 数据一致性延迟:当领导者发生变更时,新的领导者需要等待日志复制完成才能处理客户端请求。这可能会导致一定的数据一致性延迟,即新的写请求可能需要在一段时间内才能被所有的节点所接受并应用。

总的来说,Raft算法以其简单易懂、高可用性和安全性等优点在分布式系统中得到了广泛的应用。然而,其性能开销、领导者单点故障和数据一致性延迟等缺点也需要在实际应用中加以考虑和解决。

同类算法比较

与Raft算法最为相似且经常被拿来比较的是Paxos算法。Paxos算法是一种经典的分布式一致性算法,具有广泛的应用场景。然而,Paxos算法的设计相对复杂,难以理解和实现。相比之下,Raft算法在保持Paxos算法的一致性和容错性的基础上,通过简化设计和降低复杂性,使得开发人员更容易实现和调试分布式系统。此外,Raft算法还通过增加强领导性和优化领导选举过程等特性,进一步提高了系统的性能和可用性。

容错设计:

Raft算法的容错设计是其核心特性之一,它确保了分布式系统在出现节点故障或网络分区等异常情况时,仍能保持系统的一致性和可用性。以下是关于Raft算法容错设计的更详细解释:

1. 领导者选举

在Raft中,领导者是处理客户端请求、管理日志复制和确保一致性的关键角色。如果领导者失效,系统会通过领导者选举来选出一个新的领导者。选举过程遵循以下规则:

  • 超时机制:每个服务器节点都有一个超时时间,如果在一定时间内没有收到领导者的心跳信息,节点就会认为领导者可能已经失效,并开始竞选成为新的领导者。
  • 投票机制:候选者会向集群中的其他节点发送请求投票的消息。节点在收到请求后,会检查请求者的日志是否比自己更新或至少和自己一样新。如果是,节点就会投票给请求者。当候选者收到超过半数的投票时,就会成为新的领导者。

这种选举机制确保了即使领导者失效,系统也能快速恢复到一个新的稳定状态,继续提供服务。

2. 日志复制

Raft通过日志复制机制来确保集群中所有节点上的日志保持一致,从而保证了数据的一致性和容错性。

  • 领导者发送日志:领导者会将客户端的请求作为新的日志条目追加到自己的日志中,并将这些条目发送给集群中的其他节点(即跟随者)。
  • 跟随者接收日志:跟随者在接收到领导者发送的日志条目后,会将其追加到自己的日志中,并回复领导者一个确认消息。
  • 领导者确认提交:当领导者确认大多数跟随者已经复制了某个日志条目时,就会将该条目标记为已提交。已提交的日志条目会被应用到状态机中以更新系统状态。

这种日志复制机制确保了即使某个节点失效,只要大多数节点仍然正常工作,系统就能够继续运行并保持一致性。因为已提交的日志条目已经被大多数节点所复制,所以即使某个节点失效,也不会影响整个系统的状态。

3. 安全性保证

Raft算法通过一系列规则来确保数据的安全性和一致性:

  • 领导者唯一性:在任何时候,集群中最多只有一个领导者。这避免了多个领导者同时处理请求导致的数据不一致问题。
  • 日志一致性:领导者在提交日志条目之前必须确保大多数跟随者已经复制了该条目。这确保了即使领导者失效,新的领导者也能从大多数跟随者那里获取到最新的日志数据。
  • 安全性限制:在选举过程中,只有拥有最新日志的节点才能成为领导者。这保证了新领导者在接管后能够继续之前的操作,不会丢失数据。

4. 处理网络分区

在网络分区的情况下,Raft能够确保在大多数节点所在的分区中选举出一个新的领导者,继续处理客户端的请求。当网络恢复后,被隔离的节点会自动与新领导者进行同步,确保数据的最终一致性。这种设计避免了在网络分区时出现多个领导者同时处理请求的情况,从而保证了数据的一致性和可靠性。

总的来说,Raft算法的容错设计通过领导者选举、日志复制、安全性保证以及处理网络分区等机制来确保分布式系统在面对各种异常情况时能够保持其一致性和可用性。这使得Raft算法成为构建高可用性和容错性分布式系统的理想选择。

参考地址:

Raft Consensus Algorithm

Paper: https://raft.github.io/raft.pdf

基于Raft算法的分布式KV数据库:一、开篇 阅读详情

相关推荐

代码实现raft共识算法,并进行Demo展示

参考资料: http://thesecretlivesofdata.com/raft/ https://www.cnblogs.com/mindwind/p/5231986.html https://blog.youkuaiyun.com/s15738841819/article/details/84286276 源码地址:https://github.com/corgi-kx/blockchain_...

qq_35911184的博客 3538

Raft算法拆解

Raft的前世今生 因为Paxos优秀而并不完美,Raft继承Paxos优点,改进缺点。 Paxos优点:实现了安全性(safety)与存活性(liveness), 且在正常的情况下, 效率不差。 Paxos缺点:难以理解和缺失了工程化的细节信息 Raft目标 安全性: 算法正确性能得到证明, 确保多状态机一致性的达成 存活性: 半数以上结点正常工作且相互能够通信的情况下, 整个系统能持续对外提供服务 易懂性: 聪明的你和我都能快速理解 Raft 协议的核心原理与正确性 易实现: 充分描述算法的实现细

aajjw的博客 1582

Raft一致性算法中文翻译版(格式同原论文)

读者学习过程中,发现网上的翻译版的格式混乱,然后使用ieee的latex的论文格式按照原论文格式进行了翻译,希望读者可以比对原论文阅读,及节约时间又可以快读理解raft论文。如果觉得翻译的存在问题,可以到https://github.com/brandonwang001/raft_translation提建议或改进。如果有侵权,请联系作者进行删除。

Raft协议图解,缺陷以及优化

结点的状态 每个结点可以有三种状态:Follower,Candidate,Leader。所有的结点都是从Follower状态开始的 如果followers没有收到leader的RPC消息(心跳),则可以转换为candidate,如下图node a,Term表示任期 而candidate需要发起投票,其他结点参与投票,回复他们的投票结果,如果这个candidate获得了大部分(过半)的选票,就可以成为leader结点了。这就是Leader Election过程。 选举机制 每个节点随机一个选举超时时间,而

Ethan_199402的博客 4433

Ubuntu20.04实时内核补丁PREEMPT_RT编译与安装全流程解析

本文详细解析了在Ubuntu20.04系统上编译与安装实时内核补丁PREEMPT_RT的全流程。从内核与补丁版本匹配、编译环境准备,到内核配置、编译排错,再到最终安装、验证与进阶优化,提供了手把手的实战指南,旨在帮助机器人、工业控制等对实时性有苛刻要求的开发者构建低延迟、高确定性的Linux系统。

weixin_29213827的博客 186

RK3576平台部署NanoTrack:边缘AI视觉跟踪实战指南

边缘AI部署是将深度学习模型在资源受限的嵌入式设备上高效运行的关键技术,其核心在于模型压缩、硬件适配与软件栈优化。通过INT8量化、算子融合与内存优化等原理,能显著降低模型计算量与内存占用,从而在嵌入式NPU上实现实时推理。这项技术的价值在于为安防监控、无人机视觉、工业检测等场景提供低功耗、高响应的智能感知能力。以瑞芯微RK3576平台部署轻量级视觉跟踪模型NanoTrack为例,其过程涉及模型结构分析、RKNN工具链转换、C++推理程序开发及多线程性能优化,完整展现了从算法到产品的工程化路径,为开发者提供

weixin_31887307的博客 426

【大数据】Raft算法

Raft算法是一种用于管理复制日志的共识算法,它被设计为易于理解,以便于实现和理解。Raft将共识问题分解为几个关键元素,包括领导选举、日志复制和安全性,并且为每个元素提供了独立的子解决方案。Raft算法确保了在非拜占庭错误条件下,系统中的所有非故障节点最终能够对日志条目的顺序达成一致。

大雨淅淅的博客 1878

LLM大模型基础知识【一】

大语言模型(LLM):是指在自然语言处理(Natural Language Processing,NLP)领域中的一类大模型,通常用于处理文本数据和理解自然语言。这类大模型的主要特点是它们在大规模语料库上进行了训练,以学习自然语言的各种语法、语义和语境规则。例如:GPT系列(OpenAI)、Bard(Google)、文心一言(百度)。视觉大模型:是指在计算机视觉(Computer Vision,CV)领域中使用的大模型,通常用于图像处理和分析。

lin_xi_xi的博客 2872

共识(raft)算法

raft算法

weixin_42255430的博客 2555

如何在高版本的ubuntu系统里安装gcc4.1.2

1、下载安装包,一共五个http://archive.ubuntu.com/ubuntu/pool/universe/g/gcc-4.1/,根据计算机系统位数   进行下载,64位下载amd64结尾的。开头分别是cpp-4.1_4.1.2、g++-4.1_4.1.2、gcc-4.1-base_4.1.2、gcc-     4.1_4.1.2、libstdc++6-4.1 2、使用sudo d

lsr_fighting的博客 1929

解锁RK3588视觉潜能:RGA硬件加速库实战指南

本文深入探讨了如何利用RK3588芯片内置的RGA硬件加速库,解决视觉应用中图像预处理的性能瓶颈。通过实战指南,详细介绍了RGA库在YUV转RGB、图像缩放等核心操作上的应用,相比CPU软处理可大幅降低延迟与CPU占用,从而充分释放RK3588的NPU算力,构建高效的AI视觉预处理流水线。

zeta9的博客 669

分布式一致性共识算法之Raft算法浅析

Raft分布式一致性共识算法万字解析,包括各组件介绍以及各步骤思考。

hey_we_go_的博客 1550

Ubuntu-22.04安装VMware虚拟机并安装Windows10

最近在研究虚拟机,主要集中在KVM、Virtualbox和VMware这三种虚拟机上。前面我已经研究了前两种虚拟机的安装和使用方式,这篇文章介绍3兄弟中最后一个虚拟机安装和使用方式。Virtualbox虚拟机安装和使用KVM虚拟机安装和使用相比于前两种,VMware的安装方式最麻烦,但是综合体验下来我感觉流畅度最好。如果你确实有在Linux上使用VMware虚拟机的需求,那不妨跟着我看下去吧。1、gcc版本和内核版本一定要匹配上,否则会出各种错误。

jiexijihe945的博客 4114

【分布式】一致性算法 Raft

Raft 算法是共识算法(也叫一致性算法)的一种,用来解决分布式一致性问题,主要作为 Paxos 的替代算法。文章有一万多个字,对算法的主要内容进行了整理,加上了对关键问题的消化和理解,希望对大家学习 Raft 算法能提供一些帮助。

_山月 1750

LVGL iPhone Duo 开合过渡

环境:LVGL 9.x(需要软件模糊),窗口建议 1280×800。界面文案英文(默认 Montserrat 无 CJK)。

摸鱼专家 149

基于Costas环的载波同步实现及Matlab仿真

其中,第一个相位环接收带噪声的待同步载波,并产生一个相位误差信号,这个误差信号再通过第二个相位环进行反馈控制,使得两个相位环的相位差保持为90度,最终输出同步载波信号。接下来,我们可以编写Costas环的仿真程序,并将上面生成的信号输入到Costas环中进行同步,最终输出同步后的载波信号。综上所述,本文介绍了如何使用Matlab实现基于Costas环的载波同步,并给出相应的源代码。上述代码中,我们初始化了Costas环的各个参数,然后通过循环迭代实现了相位估计和相位误差控制,最终输出了同步后的载波信号。

2301_78484069的博客 1048

RAFT共识算法学习

RAFT共识算法 https://raft.github.io/raft.pdf raft论文 http://thesecretlivesofdata.com/raft/ raft算法动画演示 1.分布式系统 etcd简介 etcd是CoreOS团队于2013年6月发起的开源项目,它的目标是构建一个高可用的分布式键值(key-value)数据库。etcd内部采用raft协议作为一致性算法,etcd基于Go语言实现。 etcd作为服务发现系统,有以下的特点: 简单:安装配置简单,而且提供了HTTP API进

Sun_study的博客 1775

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

ZooKeeper分布式一致性协议详解:ZAB协议与其他共识算法

ZooKeeper采用的分布式一致性协议是ZAB(ZooKeeper Atomic Broadcast,原子广播)协议。这是一个为ZooKeeper专门设计的支持崩溃恢复的原子广播协议。fill:#333;important;important;fill:none;ZAB协议消息广播模式写请求转发事务提案生成过半确认机制提交通知崩溃恢复模式Leader选举数据同步状态对齐ZooKeeper采用的ZAB协议是一个专为原子广播设计的共识协议两阶段模式:消息广播 + 崩溃恢复全局有序。

✨ 欢迎来到【Seal ^_^ 的优快云博客】!✨ 3422

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

彻底理解 Raft 共识算法及 etcd/raft 源码解析

译者序本文翻译自 USENIX 2014 论文 In Search of an Understandable Consensus Algorithm (Extended Version)[...

云原生实验室 3389

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

分布式——分布式一致性算法(共识算法)

Paxos算法是分布式系统达成一致性的基础协议,由Leslie Lamport提出。它通过两阶段协议(Prepare和Accept)确保在异步非拜占庭环境下,即使存在节点故障或消息丢失,多数派节点也能对提案达成共识。算法包含三种角色:Proposer提出提案,Acceptor表决提案,Learner学习选定值。关键特性包括安全性(唯一值被选定)和活性(最终必达一致)。Raft算法则进一步优化了共识过程,分解为领导者选举、日志复制和安全性三大机制,通过随机化选举超时和日志匹配特性,确保集群高效恢复和数据强一致

woshihlf的博客 1366

raft共识算法

相比于Paoxs,Raft的最大特点就是易于理解。为了这个目标,Raft主要做了两方面的事情问题分解:把共识算法分为三个子问题,分别是领导选举问题、日志复制问题和安全性问题状态简化:对算法做出一些限制,减少状态数量和可能产生的变动。服务器只在三个状态进行切换,服务器之前使用两类RPC进行通信。

C_J_L12580的博客 990

JAVA:分布式一致性 Raft 算法的技术指南

Raft是一种易于理解和实现的分布式一致性算法,通过明确的领导者选举、日志复制和心跳机制,确保多节点数据一致性。相比复杂的Paxos,Raft适合工程落地,广泛应用于分布式配置中心、协调系统等领域。核心机制包括:Follower超时触发选举,Leader负责日志复制和提交,多数派确认保证安全性。Java生态有JRaft、Atomix等成熟实现,可用于构建高可用分布式系统。Raft的清晰设计使其成为分布式系统开发的重要工具。

木头 1221

分布式共识算法丨Raft丨Raft-Extended 论文翻译

Raft-Extended 翻译 原文:https://pdos.csail.mit.edu/6.824/papers/raft-extended.pdf 辨析 consensus vs consistency 一致性(consistency)往往指分布式系统中多个副本对外呈现的数据的状态。如顺序一致性、线性一致性,描述了多个节点对数据状态的维护能力。 共识(consensus)则描述了分布式系统中多个节点之间,彼此对某个提案达成一致结果的过程。 因此,一致性描述的是结果,共识则是一种手段。 有的人会说

Hedon954的博客 3203

区块链中五种常见共识算法

区块链是一种去中心化的分布式账本系统,可以用于登记和发行数字化资产、产权凭证、积分等,并以点对点的方式进行转账、支付和交易。区块链系统与传统中心化系统相比,具有公开透明、不可篡改、防止多重支付等优点,并且不依赖于任何的可信第三方。 由于点对点网络下存在较高的网络延迟,各个节点所观察到的事务先后顺序不可能完全一致。因此,区块链系统需要设计一种机制对在差不多时间内发生的事务的先后顺序进行共识。这种对...

跨链技术践行者 1万+

Redis Raft算法:强一致性机制解析

在分布式系统中,数据一致性的保证是至关重要的。以Redis为例,作为一款高性能的键值存储系统,其数据一致性问题尤为突出。在分布式环境下,如何确保Redis集群中的数据强一致性,成为了开发者和运维人员关注的焦点。为了解决这一问题,Raft算法应运而生。想象一下,在一个大型分布式Redis集群中,由于网络分区、节点故障等原因,可能会导致数据不一致的情况。这种情况下,如果不对数据进行强一致性保证,那么可能会导致严重的业务错误,甚至影响到整个系统的稳定性。

我是Java程序员廖志伟,感谢朋友们的支持!不定期贡献一篇高品质、过万文字、图文并茂且附有视频解说、满载代码示例注释的良心之作,坚决杜绝粗制乱造。 776

《聊聊分布式》从Paxos到Raft:分布式共识算法的演进与突破

共识算法是分布式系统的核心,Paxos作为首个被证明正确的算法奠定了理论基础,但其工程实现复杂且难以理解。Raft算法通过分解问题、明确状态和简化流程显著提升了可理解性,成为工程实践的首选。对比显示,Raft的学习曲线更平缓,实现更简单,运维更友好,已在etcd、Consul等系统中广泛应用。这一演进体现了从理论正确性向工程实用性的转变,启示系统设计应重视可理解性和可观测性。当前共识算法仍在发展无领导者和跨地域优化等方向,但对大多数系统而言,Raft仍是平衡正确性、性能和可理解性的最佳选择。

王同学的博客 1061
上一篇: JDK8:用java.nio.file.Files.lines方法读取大型文件
下一篇: MapStruct与BeanUtils处理对象属性复制场景对比
Jack_abu
博客等级 码龄10年 633粉丝 78原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Jack_abu

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值