raft 协议

news/2024/7/5 4:12:25

文章目录

    • leader选举
    • 日志复制
    • 安全性
    • preVote 阶段
      • preVote 投票阶段
      • preVote阶段的作用
    • 集群选举

leader选举

日志复制

安全性

  1. leader只能commit当前的term的日志,不能提交其他term的日志
  2. leader只能增加当前的日志,不能删除以前item提交的日志
  3. 只能选择日志最新的节点为leader
  4. 匹配特性,通俗来讲,就是要保证日志序列要一致

preVote 阶段

preVote 投票阶段

  1. 投票需要判断leader是否存在,并且心跳并没有超时
  2. 投票的时候需要判断被投票的节点的日志要大于本节点
  3. 并且是否能够获得一半以上的点
    然后才能新增 term 然后再发起leader 选举

preVote阶段的作用

  1. 防止某个节点因为出现分区后,恢复后,再次发起leader选举,此处因为他会先进入prevote阶段,因为此时该阶段回去判断是否日志索引记录多少,因此该节点不能进入leader选举流程

  2. 如果出现网络分区(注意分区后节点数还是和分区前是一样的)
    如果新分区的节点需要经过preVote
    因为此时其他节点大概率还是保持和leader通信的

  3. 集群成员变更的时候,下线C-old节点的时候,可能会因为暂时失联再发起leader选举

集群选举

参考连接


http://lihuaxi.xjx100.cn/news/2162987.html

相关文章

VS2022通过C++网络库Boost.asio搭建一个简单TCP异步服务器和客户端

基本介绍 上一篇博客我们介绍了通过Boost.asio搭建一个TCP同步服务器和客户端,这次我们再通过asio搭建一个异步通信的服务器和客户端系统,由于这是一个简单异步服务器,所以我们的异步特指异步服务器而不是异步客户端,同步服务器在…

uniappx 应用未读角标插件(完善推送、通知、消息效果) Ba-Shortcut-Badge-U

简介(下载地址) Ba-Shortcut-Badge-U 是设置应用未读角标的原生插件,UTS版本(同时支持uniapp和uniappx) 支持设置未读、清空未读支持机型有Huawei、oppo、xiaomi、Samsung、Sony、LG、HTC、ZUK、ASUS、ADW、APEX、NO…

AI网络爬虫:批量爬取电视猫上面的《庆余年》分集剧情

电视猫上面有《庆余年》分集剧情&#xff0c;如何批量爬取下来呢&#xff1f; 先找到每集的链接地址&#xff0c;都在这个class"epipage clear"的div标签里面的li标签下面的a标签里面&#xff1a; <a href"/drama/Yy0wHDA/episode">1</a> 这个…

【无标题】 前端基础入门三大核心之HTML篇:HTML页面性能优化实战指南 —— 5大方法与策略

【无标题】 前端基础入门三大核心之HTML篇&#xff1a;HTML页面性能优化实战指南 —— 5大方法与策略 1. 减少HTML文件大小基本概念实操技巧代码示例 2. 利用Link预加载与prefetch基本概念实操技巧 3. 异步加载脚本与defer属性基本概念实操技巧 4. 图像懒加载与图片优化基本概念…

python安装路径可以更改吗

Python3.5默认安装路径是当前用户的 AppData\.. 下 现在安装过程中默认是install just for me&#xff0c;这个会把python默认安装到AppData文件夹中&#xff0c;如果选了install for all users&#xff0c;就会默认安装到C盘根目录了。 python3.5 安装&#xff1a; 输入官网…

Flutter 中的 InputDecorator 小部件:全面指南

Flutter 中的 InputDecorator 小部件&#xff1a;全面指南 在Flutter中&#xff0c;InputDecorator是一个用于装饰输入字段的组件&#xff0c;它为TextField和TextFormField提供了一个统一的外观和布局。InputDecorator可以让您自定义输入框的标签、填充、边框、图标、光标、错…

大模型日报2024-05-23

大模型日报 2024-05-23 大模型资讯 减少生成型AI和大型语言模型中的幻觉现象 摘要: Phocuswright即将发布全面报告《从流行词到实际效益&#xff1a;跟上旅游业中生成型AI的步伐》。该报告预览指出&#xff0c;降低生成型人工智能及大型语言模型在生成内容时出现的幻觉现象是行…

6.1 if语句

计算机语言和人类语言类似&#xff0c;人类语言是为了解决人与人之间交流的问题&#xff0c;而计算机语言是为了解决程序员与计算机之间交流的问题。程序员编写的程序就是计算机的控制指令&#xff0c;控制计算机的运行。借助于编译工具&#xff0c;可以将各种不同的编程语言的…