网站大量收购闲置独家精品文档,联系QQ:2885784924

专题21:raft 协议(史上最全 + 2024面试必备).pdf

专题21:raft 协议(史上最全 + 2024面试必备).pdf

  1. 1、本文档共22页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多

专题21:Raft协议(史上最全、定期更新)

本文版本说明:V2

此文的格式,由markdown通过程序转成而来,由于很多表格,没有来的及调整,出现一个格式

问题,尼恩在此给大家道歉啦。

由于社群很多小伙伴,在面试,不断的交流必威体育精装版的面试难题,所以,《Java面试红宝书》,后面

会不断升级,迭代。

本专题,作为《Java面试红宝书》专题之一,《Java面试红宝书》一共30个面试专题,后续还

会增加

《Java面试红宝书》升级的规划为:

后续基本上,每一个月,都会发布一次,必威体育精装版版本,可以扫描扫架构师尼恩微信,发送“领取电子书”

获取。

尼恩的微信二维码在哪里呢?请参见文末

面试问题交流说明:

如果遇到面试难题,或者职业发展问题,或者中年危机问题,都可以来疯狂创客圈社群交流,

加入交流群,加尼恩微信即可,

入交流群,加尼恩微信即可,发送“入群”

raft算法之所以容易理解,其一是他将一致性问题划分成几个子问题,这几个子问题都是独立、可理解

和解释的。从传统的思维来讲,对于一个复杂的系统或者工程,都是大化小,分解实现,然后去尝试融

合解决整体逻辑。

1、Raft详解

Raft算法是分布式系统开发首选的共识算法。比如现在流行Etcd、Consul、Nacos。

如果掌握了这个算法,就可以较容易地处理绝大部分场景的容错和一致性需求。比如分布式配置系

统、分布式NoSQL存储等等,轻松突破系统的单机限制。

Raft算法是通过一切以领导者为准的方式,实现一系列值的共识和各节点日志的一致。

page:1/15of尼恩Java硬核架构班:狠卷3高架构,卷透底层技术,走向技术自由!

1.1Raft角色

跟随者(Follower):普通群众,默默接收和来自领导者的消息,当领导者心跳信息超时的时候,就

主动站出来,推荐自己当候选人。

候选人(Candidate):候选人将向其他节点请求投票RPC消息,通知其他节点来投票,如果赢得了

大多数投票选票,就晋升当领导者。

领导者(Leader):霸道总裁,一切以我为准。处理写请求、管理日志复制和不断地发送心跳信息,

通知其他节点“我是领导者,我还活着,你们不要”发起新的选举,不用找新领导来替代我。

如下图所示,分别用三种图代表跟随者、候选人和领导者。

1.1数据库服务器

现在我们想象一下,有一个单节点系统,这个节点作为数据库服务器,且存储了一个值为X。

左边绿色的实心圈就是客户端,右边的蓝色实心圈就是节点a(Nodea)。Term代表任期,后面会讲

到。

page:2/15of尼恩Java硬核架构班:狠卷3高架构,卷透底层技术,走向技术自由!

客户端向单节点服务器发送了一条更新操作,设置数据库中存的值为8。单机环境下(单个服务器节

点),客户端从服务器拿到的值也是8。一致性非常容易保证。

但如果有多个服务器节点,怎么保证一致性呢?比如有三个节点:a,b,c。如下图所示。这三个节点

组成一个数据库集群。客户端对这三个节点进行更新操作,如何保证三个节点中存的值一致?这个就是

您可能关注的文档

文档评论(0)

Leosen + 关注
实名认证
内容提供者

很懒

1亿VIP精品文档

相关文档