范文健康探索娱乐情感热点
投稿投诉
热点动态
科技财经
情感日志
励志美文
娱乐时尚
游戏搞笑
探索旅游
历史星座
健康养生
美丽育儿
范文作文
教案论文
国学影视

一文读懂raft一致性协议算法并理解其中的关键设计

  什么是一致性算法
  为了避免单个机器可能出现的数据丢失、单点故障等问题,人们想出了通过复制数据到多个机器上的方式来解决。但是有多个机器时,带来的另一个问题就是如何保证这些机器之间的数据是一致的呢?不能因为某个机器故障或错误,导致各个机器之前数据混乱或丢失。这就是分布式一致性算法要解决的问题。
  业界比较有名的分布式算法是paxos,不过可惜的是它比较晦涩难懂,难懂的代价就是很少有人能掌握它然后基于它做出可靠的实现。 不过幸好raft及时出现,raft的特点是易于理解,并且已经有非常多的实际系统是基于raft算法实现的了,比如tikv、etcd等。文章末尾我们还会解释一下raft的名字。介绍raft
  raft的易懂性的一个重要方式就是对问题进行拆分,让大家能够独立理解每个子问题。 raft的分布式一致性问题可以拆分成哪些子问题呢?
  可以分为leader选举log复制安全性保证log compaction、membership change等优化leader选举
  raft把分布式系统抽象成了分布式的状态机,每个状态机有一个log队列,log队列中存放的是状态机的指令,只要保证各个节点的log队列的数据顺序和值一致,就能保证状态机最终的状态是一致的。
  在raft,节点一共有3中角色,leader、follower、candidate。 在raft系统中,同一时间只会有一个leader,leader负责处理客户端的请求,并且同步log给follower, leader定期通过给follower发送心跳,保持自己的leader地位。
  初始时所有的节点都处于follower状态,当follower一段时间(election timeout)内没有接收到leader的请求时(log复制或心跳),就会把自己转变为candidate角色,candidate是成为leader前的准备状态,candidate会向其他节点发送RequestVote请求,请求其他节点为自己投票,如果某个candidate获得了半数以上(包括自己)的节点的投票支持后,就可以成为这一届的leader。这里为了防止节点可能同时唤醒成为candidate,会增加一个随机机制,让超时时间随机,减少冲突概率,即使出现了冲突(多个candiate且都获得相同的投票),会在一段时间后进行下一轮投票。每一轮的选举会有一个term(任期)的值,term会从1开始递增,每一个follower在一个任期内只会投票给一个节点,这样加上半数以上机制就能保证同一个term内最多只会出现一个leader。log复制(log replication)
  成为leader之后,就可以接收客户端的请求,leader接收客户端请求后,会写入本地log,并同步给所有的follower(通过AppendEntries的RPC请求),follower会写入本地log,返回给leader成功,leader接收到半数以上(包括自己)的写入成功后,会进行commit,commit后这个修改就会应用到状态机中,并且返回给客户端请求成功。AppendEntries请求中会包含当前leader的term和日志的index。每次AppendEntries请求中会带上leader的commitIndex,这样follower就知道哪些log可以被应用到状态机上了。raft的安全性关键设计-leader故障重新选举
  如果某个时刻leader故障了,而leader刚刚同步的log并没有同步给全部follower,则这时一个没有完成同步的follower如果成为下一个leader,则会导致前一任leader已经commit的数据丢失,这是不能接受的。
  在raft中是如何解决这个问题的呢?raft中巧妙的实现了必须拥有已经commit的log的节点才能成为下一个leader,当follower收到一个candidate的RequestVote时,RequestVote中包含term、lastLogTerm、lastLogIndex,term是这个candiate的发起新的leader选举的term,lastLogTerm是candidate上最后一个log的term,lastLogIndex是最后一个log的index,term和index能够共同定位出唯一一个log。 如果candidate的lastLogTerm小于当前follower的最后一个log的term,则会拒绝这个RequestVote请求。如果candidate的lastLogIndex小于当前follower的最后一个log的index,则会拒绝这个RequsetVote的请求。
  通过这个限制,就能够保证选举出的新leader,是不会丢掉已经commit的数据的。并且当leader给follower同步数据(AppendEntries请求)时,会带上上一个log的term和index,如果follower的上一个log的term和index不相同,follower会返回错误,leader会进行回溯,这样就可以将follower的数据和leader进行校准。raft优化-log compaction
  系统持续运行log可能会持续增加,持续增加的log带来的问题有,1是占用过多的磁盘空间,2是如果有新节点加入,则需要同步的数据会非常多。 因此raft中提出了log compaction的机制,就是做快照,这个与mysql中的redo log类似。程序在特定时间(比如定时或log到达一定长度)后会对状态机保存快照,这样这个状态机之前的log就可以丢弃了,只需要持久化、传输这个快照就可以了。一般快照都比log会小很多。raft优化-membership change
  服务在运行过程中,可能出现要添加修改删除节点的情况,比如某个机器坏了,我们就需要给集群换一个机器,再比如我们想提高集群的故障容忍度,可能就需要添加节点。
  raft中提出的修改membership的方法为joint(联合) consensus
  我们把raft集群节点的列表称为配置,当要进行节点修改时,就是从一个旧的配置(C-old)修改到新的配置(C-new),当leader收到要进行集群配置修改的请求后,会创建一个C old-new的配置(旧集群和新集群合并),作为raft log发送给follower,当follower收到C old-new后,会立刻使用C new配置。一旦C old-new被commit后,Cold和Cnew必须联合起来做决定(包括log复制和leader选举),两个集群配置不能做单边决定,然后leader会再发送一个C new的配置,C new的配置commit后,old配置就失效了,old配置中的节点也可以安全关闭了。这个机制能够保证C old和C new不会做单边决定,从而保证了安全性。raft的名字
  最后,关于raft这个名字的理解, raft为什么叫raft呢? 官网和google上并没有明确的答案。下面是我的理解。
  raft在英文中的名字是木筏的意思,从raft的logo可以看出,它是有三个木头组成,那么木头在英文中有什么名字呢,log的意思也是木头。 3个木头代表3个log,分布式的replicate log,是不是很巧妙?其他参考资料raft深入浅出 Raft - 基本概念Making sense of the RAFT Distributed Consensus Algorithm

红米Note12才是性价比机皇,120W并没有缺席,天玑8000是重点近几年,性价比手机市场竞争可谓是相当激烈,自从真我RealmeIQOO等手机厂商出站后,红米的压力越来越大,不得不开始调整策略,全力提升手机性价比。这点从红米K50系列就可以看出来方圆矩阵设计!vivo全新家族式外观设计曝光多款机型采用说到vivo手机近几年的设计,估计云阶相机模组设计是最受用户喜爱的,旗下的X系列iQOO等机型都用上这个云阶设计,给很多用户留下了深刻的印象。而在最近,有博主爆料称vivo将采用全美国在中兴植入了一颗中国科技自强的伤疤别了,司徒雷登。当美国驻中兴的监察官撤离后,我想他们就像司徒雷登一样,黯然离别了生活5年的中国,从此再也不能以这种凌辱的身份踏上中国的土地。中国过去200年沧桑的历史,因为科技落后产业漫谈公路客运的业务转型背景自2014年开始,随着高铁的竞争加剧及移动互联网的崛起,公路客运行业开始从高峰回落,生存空间被不断挤压。这个局面形成,表面上或在一定程度上有外部竞争的影响,但本质上还是市场的供年度旗舰基本确定!华为Mate50系列被曝年内发布,最快7月见?自从一些大众熟知的特殊原因,华为的当家旗舰作品一直出现延期的旗舰,比如华为P50系列的发布就延期了数个月,而不少人认为会在2021年末2022年初的华为Mate50系列也是一直没有摩托罗拉亮剑超级直面屏6500mAh电池,不负旗舰之名经过近些年的发展,国产手机已经取得了长足的进步,国产手机无论是产品设计还是产品创新都达到了一流水平。不过,随着国产手机的快速发展,摩托罗拉手机的影响力和知名度遭受到了一定程度的影响2款舒适型低速电动车来了,搭载4000W交流电机,最大续航180公里读者您好请在阅读前,先点击上面的关注二字,感谢您的支持,我们将为您带来更多有价值的内容。每年春节前,很多朋友都想趁着新车变成有车一族,但是很多人考虑到没有驾照,用车保养费用高昂,以这3款硬汉电动车,极速103kmh,最高续航200km请您在阅读前,先点击上面的关注。感谢您的支持,我们将为您带来更多有价值的内容。男人爱车,就像女人爱包,男人对车,始终有着非一般的痴迷,无论是普通小汽车还是豪华大汽车,甚至是电动车,特斯拉刹车失灵昨天一则新闻说那位特斯拉刹车门也就是那位车顶维权的女士又提交了新的上诉申请,法院也已经受理了。那我作为一个拥有特斯拉Model3,并天天使用了2年多的车主,来说下我对这件事的看法。特斯拉普工招聘被挤破,引发用工荒问题讨论,背后还是待遇和福利根据2022年02月28日报道,我们制造业增加值规模连续12年位居榜首。与此同时,我国还是人口大国,拥有大量的劳动力。正常情况来说,我们应该能做到供需正常,但近几年,却出现用工荒的对标特斯拉Model3,零百加速3。8秒,比亚迪海豹预售21。28万起!5月20日,令人期待已久的比亚迪海豹正式开启预售,预售价格为21。2828。98万元。关于比亚迪海豹,想必很多人都有所耳闻,毕竟其对标的车型可是特斯拉Model3,这让它的热度一直
网友买到国行iPhone13ProMax监管机,容易反锁,不推荐购买苹果的监管机其实很多年前就有了,但是知道的人很少,因为大部分监管机都是企业采购之后给自己员工使用,或在某些场所里当做工具,比如某火锅店里的iPad。但随着国内租借平台越来越多,租借Mate50再次爆料确定7月发布独特方式实现5G月中的时候,网上就有传言称华为全新的Mate50系列旗舰将会于7月份发布,今日该消息又在网上得到了一些证实。据一位博主带来的爆料称,华为Mate50系列的发布日期已经确定了是7月,便宜的备用手机,有何推荐?感谢您的阅读!有哪些便宜的备用手机可以推荐。其实,备用手机很多,当然我们考虑的备用手机我觉得有几点很重要。1。备用手机的续航能力要很强。2。备用手机的屏幕表现要很强。我的意思我不建冷冻电镜看到了真实的原子!它的样子符合科学预测吗?地球上所有物质都是由原子组成的,原子是形成物质特性的最小单位。最小的氢原子尺度直径约为1010米,也就是0。1纳米,或者说百亿分之一米氢原子的质量约为1。6741027千克,1个针解决Win10系统脚本无法正常运行,因为在此系统上禁止运行脚本法加载文件DPythondemovenvScriptsactivate。ps1,因为在此系统上禁止运行脚本首先我们需要打开powerShell用管理员方式打开,这样可以确保你输入的互联网保险服务呈现三大趋势作为互联网的原住民,年青人对互联网保险有着天然的接受度,其中,快捷方便的服务已成他们投保的首选要素。近日,众安保险发布Z世代的底气2022年新青年互联网保险服务体验趋势洞察(下称报TikTok跨境电商TikTok上获亿播办公用品品类,哪些产品值得卖?市场有77。7的商品主要有纸张和纸板组成,比如商务报表,文件夹,档案袋,剩下的22。3则来源于书写文具,办公配件。大多数的文具用品风格及色彩成为了消费者购买的重要因素之一。在Tik锤子手机,是笑柄还是弄潮儿在鸿蒙还没有出现的2012年,锤子科技诞生。翌年推出的SmartisanOS,发布会可谓精彩异常。一个英语老师创办的手机公司,推出了的一款想和MIUI和iOS掰手腕的产品,搁谁都想跌至1299元,骁龙778G五千毫安LCD屏,OPPO终于良心了说到高性价比的手机,相信大家都会想到红米,毕竟从老大哥小米开始,它就是发烧的代表,然而如今的手机市场,已经不再是过去的一家独大,很多厂商开始展开追逐战,蓝绿兄弟都有自己的子品牌,用刘世锦国内有些新能源汽车不比特斯拉差,我们要有信心能源人都在看,点击右上角加关注国内对特斯拉工厂设在上海有不同的意见,有声音认为特斯拉上海工厂占了国内的市场,使得有些企业没有竞争力。国务院发展研究中心原副主任刘世锦在2022清华五别克微蓝7配置升级,售价下调1。8万元,看完你心动了吗别克微蓝7配置升级,售价下调1。8万元,看完你心动了吗在国内新能源市场中,传统车企的表现明显不如造车新势力亮眼,这一点也是可以理解的,毕竟传统车企深耕燃油车市场多年,一时半会儿难以