当前位置: 首页 > news >正文

城市建设wordpress主题 SEO优化

城市建设,wordpress主题 SEO优化,哪些网站做推广好,宠物论坛网站策划书Raft算法属于Multi-Paxos算法#xff0c;它是在Multi-Paxos思想的基础上#xff0c;做了一些简化和限制#xff0c;比如增加了日志必须是连续的#xff0c;只支持领导者、跟随者和候选人三种状态#xff0c;在理解和算法实现上都相对容易许多 从本质上说#xff0c;Raft算… Raft算法属于Multi-Paxos算法它是在Multi-Paxos思想的基础上做了一些简化和限制比如增加了日志必须是连续的只支持领导者、跟随者和候选人三种状态在理解和算法实现上都相对容易许多 从本质上说Raft算法是通过一切以领导者为准的方式实现一系列值的共识和各节点日志的一致 1、领导者选举 1、成员身份 Raft算法支持领导者Leader、跟随者Follower和候选人Candidate3种状态 跟随者接收和处理来自领导者的消息当等待领导者心跳信息超时的时候就主动站出来推荐自己当候选人候选人候选人将向其他节点发送请求投票RequestVoteRPC消息通知其他节点来投票如果赢得了大多数选票就晋升当领导者领导者负责处理写请求、管理日志复制和不断地发送心跳信息通知其他节点“我是领导者我还活着你们现在不要发起新的选举找个新领导者来替代我”Raft算法是强领导者模型集群中只能有一个领导者 2、选举领导者的过程 在初始状态下集群中所有的节点都是跟随者状态 Raft算法实现了随机超时时间的特性每个节点等待领导者心跳信息的超时时间间隔是随机的。上图中集群中没有领导者而节点A的等待超时时间最小它会最先因为没有等到领导者的心跳信息发生超时 这时节点A增加自己的任期编号并推举自己为候选人先给自己投上一张选票然后向其他节点发送请求投票RPC消息请它们选举自己为领导者 如果其他节点接收到候选人A的请求投票RPC消息在编号为1的这届任期内也还没有进行过投票那么它将把选票投给节点A并增加自己的任期编号 如果候选人在选举超时时间内赢得了大多数的选票那么它就会成为本届任期内新的领导者 节点A当选领导者后它将周期性地发送心跳消息通知其他服务器我是领导者阻止跟随者发起新的选举 3、节点间如何通讯 在Raft算法中服务器节点间的沟通联络采用的是远程过程调用RPC在领导者选举中需要用到这两类的RPC 请求投票RequestVoteRPC是由候选人在选举期间发起通知各节点进行投票日志复制AppendEntriesRPC是由领导者发起用来复制日志和提供心跳消息4、什么是任期 Raft算法中每个任期由单调递增的数字任期编号标识任期编号是随着选举的举行而变化的 跟随者在等待领导者心跳信息超时后推举自己为候选人时会增加自己的任期编号比如节点A的任期编号为0那么在推举自己为候选人时会将自己的任期编号增加为1如果一个服务器节点发现自己的任期编号比其他节点小那么它会更新自己的任期编号到较大的编号值比如节点B的任期编号是0当收到来自节点A的请求投票RPC消息时因为消息中包含了节点A的任期编号且编号为1那么节点B将把自己的任期编号更新为1如果一个候选人或者领导者发现自己的任期编号比其他节点小那么它会立即恢复成跟随者状态。比如分区错误恢复后任期编号为3的领导者节点B收到来自新领导者的包含任期编号为4的心跳消息那么节点B将立即恢复成跟随者状态如果一个节点接收到一个包含较小的任期编号值的请求那么它会直接拒绝这个请求。比如节点C的任期编号为4收到包含任期编号为3的请求投票RPC消息那么它将拒绝这个消息5、选举有哪些规则 领导者周期性地向所有跟随者发送心跳消息即不包含日志项的日志复制RPC消息通知大家我是领导者组织跟随者发起新的选举 如果在指定时间内跟随者没有接收到来自领导者的消息那么它就认为当前没有领导者推举自己为候选人发起领导者选举 在一次选举中赢得大多数选票的候选人将晋升为领导者 在一个任期内领导者一直都会是领导者直到它自身出现问题比如宕机或者因为网络延迟其他节点发起一轮新的选举 在一次选举中每一个服务器节点最多会对一个任期编号投出一张选票并且按照先来先服务的原则进行投票。比如节点C的任期编号为3先收到了一个包含任期编号为4的投票请求来自节点A然后又收到了一个包含任期编号为4的投票请求来自节点B。那么节点C将会把唯一一张选票投给节点A当再收到节点B的投票请求RPC消息时对于编号为4的任期已没有选票可投了 日志完整性高的跟随者也就是最后一条日志项对应的任期编号值更大索引号更大拒绝投票给日志完整性低的候选人。比如节点B的任期编号为3节点C的任期编号为4节点B的最后一条日志项对应的任期编号为3而节点C为2那么当节点C请求节点B投票给自己时节点B将拒绝投票选举是跟随者发起的推举自己为候选人大多数选票是指集群成员半数以上的选票大多数选票规则的目标是为了保证在一个给定的任期内最多只有一个领导者 6、随机超时时间是什么 Raft算法使用随机选举超时时间的方法把超时时间都分散开来在大多数情况下只有一个服务器节点先发起选举而不是同时发起选举这样就能减少因选票瓜分导致选举失败的情况 在Raft算法中随机超时时间有2种含义 跟随者等待领导者心跳信息超时的时间间隔是随机的如果候选人在一个随机时间间隔内没有赢得过半票数那么选举就无效了然后候选人发起新一轮的选举也就是说等待选举超时的时间间隔是随机的7、补充 1Raft算法的强领导者模型选举限制和局限如下 读写请求和数据转发压力落在领导者节点相当于单机性能和吞吐量也会受到限制大规模跟随者的集群领导者需要承担大量元数据维护和心跳通知的成本领导者单点问题故障后直到新领导者选举出来期间集群不可用随着候选人规模增长收集半数以上投票的成本更大2强领导者模型会限制集群的写性能有什么办法能突破Raft集群的写性能瓶颈呢 参考Kafka的分区和ES的主分片副本分片这种机制虽然写入只能通过Leader写但每个Leader可以负责不同的片区来提高写入的性能 2、日志复制 1、如何理解日志 副本数据是以日志的形式存在的日志是由日志项组成日志项是一种数据格式它主要包含用户指定的数据也就是指令Command还包含一些附加信息比如索引值Log index、任期编号Term 指令一条由客户端请求指定的、状态机需要执行的指令可以理解成客户端指定的数据索引值日志项对应的整数索引值用来标识日志项的是一个连续的、单调递增的证书号码任期编号创建这条日志项的领导者的任期编号2、如何复制日志 首先领导者通过日志复制AppendEntriesRPC消息将日志项复制到集群其他节点上 接着如果领导者接收到大多数的复制成功响应后它将日志项应用到它的状态机并返回成功给客户端。如果领导者没有接收到大多数的复制成功响应那么就返回错误给客户端 领导者将日志项应用到它的状态机怎么没通知跟随者应用日志项呢 因为领导者的日志复制RPC消息或心跳消息包含了当前最大的、将会被提交的日志项索引值。所以通过日志复制RPC消息或心跳消息跟随者就可以知道领导者的日志提交位置信息 接收到客户端请求后领导者基于客户端请求中的指令创建一个新日志项并附加到本地日志中领导者通过日志复制RPC将新的日志复制到其他的服务器当领导者将日志项成功复制到大多数的服务器上的时候领导者会将这条日志项应用到它的状态机中领导者将执行的结果返回给客户端当跟随者接收到心跳消息或者新的日志复制RPC消息后如果跟随者发现领导者已经提交了某条日志项而它还没应用那么跟随者就将这条日志项应用到本地的状态机上3、如何实现日志的一致 在Raft算法中领导者通过强制跟随者直接复制自己的日志项处理不一致日志。也就是说Raft是通过以领导者的日志为准来实现各节点日志的一致性的 首先领导者通过日志复制RPC的一致性检查找到跟随者节点上与自己相同日志项的最大索引值。也就是说这个索引值之前的日志领导者和跟随者是一致的之后的日志是不一致的然后领导者强制跟随者更新覆盖不一致的日志项实现日志的一致引入2个新变量 PrevLogEntry表示当前要复制的日志项前面一条日志项的索引值。比如下图中如果领导者将索引值为8的日志项发送给跟随者那么此时PrevLogEntry值为7PrevLogTerm表示当前要复制的日志项前面一条日志项的任期编号比如在图中如果领导者将索引值为8的日志项发送给跟随者那么此时PrevLogTerm值为4领导者通过日志复制RPC消息发送当前最新日志项到跟随者这个消息的PrevLogEntry值为7、PrevLogTerm值为4如果跟随者在它的日志中找不到PrevLogEntry值为7、PrevLogTerm值为4的日志项也就是说它的日志和领导者的不一致了那么跟随者就会拒绝接收新的日志项并返回失败消息给领导者这时领导者会递减要复制的日志项的索引值并发送新的日志项到跟随者这个消息的PrevLogEntry值为6、PrevLogTerm值为3如果跟随者在它的日志中找到了PrevLogEntry值为6、PrevLogTerm值为3的日志项那么日志复制RPC返回成功这样一来领导者就知道在PrevLogEntry值为6、PrevLogTerm值为3的位置跟随者的日志项与自己相同领导者通过日志复制RPC复制并更新覆盖该索引值之后的日志项也就是不一致的日志项最终实现了集群各节点日志的一致领导者通过日志复制RPC一致性检查找到跟随者节点上与自己相同日志项的最大索引值然后复制并更新覆盖该索引值之后的日志项实现了各节点日志的一致。跟随者中的不一致日志项会被领导者的日志覆盖而且领导者从来不会覆盖或者删除自己的日志 4、补充 1领导者接收到大多数的“复制成功”响应后就会将日志应用到它自己的状态机然后返回“成功”响应客户端。如果此时有个节点不在“大多数”中也就是说它接收日志项失败那么在这种情况下Raft会如何处理实现日志的一致呢 处理日志项一致通过RPC一致性检查找到跟随者中与自己相同日志项的最大索引然后把后面的日志项同步过去让跟随者复制更新 2Raft在处理日志不一致时会给跟随者发送RPC一致性检查找到和自己相同日志项的最大值这里是对每个跟随者而言的还是所有的跟随者而言的 日志复制信息对每个跟随者都要单独维护的 参考 07 | Raft算法一如何选举领导者 08 | Raft算法二如何复制日志 --------------------- 作者邋遢的流浪剑客 来源CSDN 原文https://blog.csdn.net/qq_40378034/article/details/117404484 版权声明本文为作者原创文章转载请附上博文链接 内容解析ByCSDN,CNBLOG博客文章一键转载插件
http://www.huolong8.cn/news/62327/

相关文章:

  • 做seo网站优化价格搭建html5网站
  • 做类型网站公司注册官方网站
  • 天津网站建设网站推广东莞网站建设推广咨询平台
  • 海门市建设局网站做一个自己网站的步骤
  • 网站建设方案基本流程手机app开发工具中文版
  • 国外做调查的网站wordpress代码转义
  • 网站模板 家短网址生成网站
  • 青岛网站建设seo淘宝客网站需要备案
  • 已有域名怎么建设网站做网站选什么系统
  • 如何上传网站新乡百度网站优化排名
  • 福建省住房城乡和建设厅网站网上找设计师
  • 徐州铜山区建设局网站uc浏览网页版进入
  • 医院网站源码下载网站如何搬家
  • 免费公司logo设计谷歌网站推广优化
  • 电商网站建设总结郑州专门做网站
  • 做服装商城网站问题谁负责
  • 做ppt必备网站wordpress读书主题
  • 丹东淘宝做网站属于网络制作平台的是
  • 郑州制作网站价格企业网站建设应避免数据孤岛
  • 生产营销网站开发联系方式wordpress 交流群
  • 物理学可建设网站建设说明上海电子商务网站
  • 自己做网站的成本商业运营是做什么的
  • 陕西省建设网官方网站现在网站给源码
  • 中华住房与城乡建设厅网站搭建微网站平台
  • 网站全景看图怎么做公司网站建设方案汇报
  • 网址网站注册织梦网站模版怎么用
  • 烟台建网站公司价格西安建设工程信息网ca锁怎么安装
  • 国内装饰行业网站开发网站收录方法
  • 海南省住房和城乡建设厅网站如何做微信小程序店铺
  • 快手作品推广网站wordpress优化插件