Raft算法

news2024/10/6 14:36:12

这是一种选举算法,用来确认分布式架构下主节点(领导者)是哪一个结点

只有成为了主节点才能向其他结点进行指令的下达来进行数据的同步

  三种角色:追随者Follower,候选人Candidate,领导者leader

(1)追随者Follower:接收来自领导者的消息,当领导心跳信息超时的时候,就自己主动站出来推荐自己当候选人

(2)候选人Candidate:向其他结点请求投票,如果赢得大多数选票,就晋升为领导者

(3)领导者leader:给其他非领导结点发送心跳信息

为了简化:这个数据库系统只存一个数

这里有三个结点,下面介绍Raft选举的过程:

初始状态:

 每个结点等待领导者结点心跳信息的超时时间间隔是随机的(设置成随机的就是为了防止多个结点同时发起投票),比如这里A结点等待领导者结点心跳信息的超时时间间隔是150ms,B结点时200ms,C结点时300ms

假如领导结点宕机了,需要选一个新的结点成为领导结点,此超时时间间隔最小的A结点会成为候选者,通过rpc请求向其他结点发送投票请求(请求为自己投上一票),并且先给自己投上一票,而且此时任期编号term加1,由0变成1

B,C结点接收到结点A的投票请求后,发现在任期编号term=1这个任期内,还没有投过票,于是把票投给A,并且自己的任期编号term也从0增加到1

结点A得到大多数结点的投票后(n/2+1)就成为这届任期内的领导者

宕机后又恢复的前任领导节点,会成为新任领导节点的跟随者

总结几个关键机制:

任期机制

领导者发送心跳消息机制

等待时间间隔随机机制

大多数选票机制

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/559804.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

电脑版pdf阅读器有哪些?编辑途径分析

PDF 阅读器电脑版是一种十分流行的电子文档阅读工具,它可以让用户在电脑上轻松地阅读各种文档,包括 PDF 文件。在数字化信息时代,PDF 阅读器电脑版已经成为了许多人电脑上必备的工具之一。本文将探讨 PDF 阅读器电脑版的优缺点,以…

【面试题】面试官:谈谈你知道的DOM常见的操作

大厂面试题分享 面试题库 前后端面试题库 (面试必备) 推荐:★★★★★ 地址:前端面试题库 web前端面试题库 VS java后端面试题库大全 前言 面试官:“谈谈你知道的DOM常见的操作” 紧张的萌新:“可以获…

达梦数据库索引的建立使用

达梦数据库支持聚集索引,复合索引,函数索引,唯一索引,位图索引等等。 一.建立索引的准则 1.1在表中插入数据后创建索引 一般情况下,在插入或装载了数据后,为表创建索引会更加有效率。如果在装载数据之前…

基于最新SolVES 模型与多技术融合【QGIS、PostgreSQL、ARCGIS、MAXENT、R】实现生态系统服务功能社会价值评估及拓展案例分析

目录 第一章 理论基础与研究热点 第二章 SolVES 4.0 模型运行环境配置 第三章 SolVES 4.0 模型运行 第四章 数据获取与入库 第五章 环境变量与社会价值的相关分析 第六章 拓展案例分析 SolVES模型(Social Values for Ecosystem Services)全称为生态…

功能开发如何实现多终端设备上的体验统一?

多端能力服务统一(Multi-Experience Service Orchestration,MESO)是一种技术和服务架构的概念,旨在为多种终端设备提供统一的用户体验和功能。它解决了在不同终端设备上使用不同应用程序和服务时出现的问题,使得用户可…

【云原生-深入理解 Kubernetes 系列 3】深入理解容器进程的文件系统

文章目录 系列文章目录👹 关于作者一、回顾二、容器进程的文件系统是什么样子的?rootfs一致性解决应用依赖关系解决复用性 三、OverlayFS 联合文件系统先决条件overlay2 驱动程序如何工作结构图探索含义-磁盘上的镜像层和容器层镜像层容器层 四、overlay…

Lua学习笔记:浅谈对闭包的认识

前言 本篇在讲什么 我们从几个方面简单认识和理解lua的闭包 本篇适合什么 适合初学Lua的小白 本篇需要什么 对Lua语法有简单认知 依赖Lua5.1的环境 依赖Sublime Text3编辑器 本篇的特色 具有全流程的图文教学 重实践,轻理论,快速上手 提供全…

docker 安装常用软件

安装docker 下载docker curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun修改镜像仓库 vim /etc/docker/daemon.json{"registry-mirrors": ["https://dockerhub.azk8s.cn","https://hub-mirror.c.163.com"] }查看docker …

Adapt Learning使用教程(Adapt Framework/Adapt Authoring)(一)

因为这是一个外国的技术,在国内又很小众,再加上公司业务需要用到这个东西所以就来总结一下。刚接到任务的时候也是稀里糊涂的,官网全是英文,国内也搜不到教程,让使用这个变得难上加难,没有其他教程参考我只…

InetAddress类

1. 简介 java.net.InetAddress类是Java对Ip地址的高层表示。大多数其他网络都要用到这个类,包括Socket、ServerSocket、URL、DatagramSocket、DatagramPacket等。一般来讲,它包括一个主机名和一个IP地址。它提供了获取和操作 IP 地址的方法,…

OceanBase 4.1解读:我们支持MySQL 8.0哪些新增功能特性?

本文主要介绍 OceanBase 在 4.1 版本发布之际,对 MySQL 8.0 新增功能特性的支持情况。文章作者刘彬,OceanBase高级技术专家。曾参与 OceanBase RS、存储模块研发,目前是 SQL 执行组负责人。 MySQL 在业内是最受欢迎的关系数据库之一&#xff…

UOS下使用HHDESK文本对比功能

UOS系统从开发至今,虽然进展很大,但受限于一些因素,所支持的功能和软件,目前仍不多。 HHDESK便是其中佼佼者之一。 此篇介绍的便是HHDESK的一项便捷功能——文本对比。这个功能针对办公人员所开发,使得原本复杂的UOS…

SpringCloud-Gateway的详细讲解以及完整的示意图和代码演示

目录 SpringCloud Gateway 看一个需求,引出网关服务 Gateway 网络拓扑图-背下来 Gateway 是什么 Gateway 核心功能 Gateway VS Zuul Gateway 和Zuul 区别 Gateway 基本原理​编辑 解读: Route(路由) Predicate(断言) Filter(过滤) How It Works 工作机制…

Linux网络——shell编程之firewalld防火墙

Linux网络——shell编程之firewalld防火墙 一、firewalld概述二、iptables与firewalld的联系与区别1.iptables与firewalld的区别2.iptables与firewalld的联系 三、firewalld区域1.firewalld的九个区域2.firewalld区域介绍3.firewalld数据处理流程4.firewalld检查数据包源地址的…

【shell编程学习】反弹shell

反弹实验 机器IPwin10虚拟机192.168.242.129攻击机centos 虚拟机192.168.242.131靶机 1,win10机器安装Ncat 来监听端口 简单来说,就是下载netcat 安装包,解压,将nc.exe 复制到C:\Windows\System32的文件夹下。即可使用nc命令来…

悦亮少儿眼科樊广祥:远视储备是妈妈都该知道的眼科知识!

近视的“低龄化”和“高度化”问题日益严重,如何预防近视或推迟近视发生,已成为大家都非常关注的话题。这其中,“远视储备”一词也为越来越多的人所知晓。 为了帮助大家更好的理解远视储备、从而帮助孩子预防近视,悦亮少儿眼科(宁…

Java 期末复习进阶版

(一) 方法重载 1.同一个类中多个方法具有相同的方法名,不同的______称为方法的重载.(参数列表) 2.在某个类中存在一个方法:void getSort(int x),以下能作为这个方法的重载的声明的是(C). A)public getSort(float x) B)int getSort(int y) C)double getSort(int x,int y) D)vo…

Docker安装Yearning3.1.4/禅道18.4【亲测可用】

一、安装Yearning 1、建议先安装go 2、在mysql下新建yearning数据库: 进入mysql:docker exec -it 91ada9def680 /bin/bash 账号密码登录:mysql -uroot -p create database if not exists yearning default character set utf8mb4 collat…

MOSN 基于延迟负载均衡算法——走得更快,期待走得更稳

文|纪卓志(GitHub ID:jizhuozhi) 京东高级开发工程师 MOSN 项目 Committer 专注于云原生网关研发的相关工作,长期投入在负载均衡和流量控制领域 前言 这篇文章主要是介绍 MOSN 在 v1.5.0 中新引入的基于延迟的负载均衡算法#2…

指针---C语言

目录 前言: 一.指针基础 1.1内存单元 1.2内存单元和指针的大小 二.指针变量 2.1指针类型 2.2野指针 三.指针运算 四.指针和数组的关系 4.1下标与解引用的等价替换 4.2指针数组 五.二级指针 ❤博主CSDN:啊苏要学习 ▶专栏分类:C语言◀ C语言的…