Raft 协议选举底层实现原理 | 学习笔记

简介: 快速学习 Raft 协议选举底层实现原理

开发者学堂课程【精通 Spring Cloud AlibabaRaft 协议选举底层实现原理学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址:https://developer.aliyun.com/learning/course/634/detail/10106


Raft 协议选举底层实现原理


内容介绍

一、搭建 nacos 集群演示事例

二、选举的过程


一、搭建 nacos 集群演示事例

在昨天搭建 nacos 集群时有没有发现什么问题?

最开始都是跟随者,突然变为了领导者。

image.png

出现问题是集群状态,但查不到

image.png

问题出现原因抽了一下网线,IP 地址改了。

现在还都是 follower 节点

image.png

刷新一次后出现一个 leader 节点


二、选举的过程

1.演示事例讲解

在早期时三个 nacos 节点都为跟随者,在 zookeeper 中,我们可以通过比较 myid 选出领导者,而在raft中是随机给每个节点产生选举超时时间,如果一旦超时就是等待,角色状态一定是跟随者状态,哪个节点最快醒来,假设三个节点分为 nacos 跟随者超时时间为100msnacos 跟随者超时时间为150msnacos 跟随者超时时间为200ms,一定是第一个超时时间为100ms 的最快醒来。超时时间过后,可能由跟随者变为竞选者,那么第一个 nacos 节点变为竞选者,只要满足跟随者投票超过半数,那么竞选者就有可能变为领导者。

image.png

如图,Leader 的超时时间是最短的。不要看心跳。

等待超时时间随机数是100ms-300ms,它可能随机生成一个值可能最大可能最小。

2.默认情况下选举的过程

(1) 默认的情况下每个节点都是为跟随者角色

(2) 每个节点随机生成一个选举的超时时间,例如大概是100-300ms,在这个超时时间内必须要等待。

(3) 超时时间过后,当前节点的状态可能由跟随者变为竞选者角色,会给其他的节点发出选举的投票的通知,只要该竞选者有超过半数以上即可选为领导角色。

核心的设计原理:其实就是靠的谁超时时问最短谁就有非常大的概率为领导角色。

相关文章
|
消息中间件 分布式计算 算法
大数据-63 Kafka 高级特性 分区 副本机制 宕机恢复 Leader选举
大数据-63 Kafka 高级特性 分区 副本机制 宕机恢复 Leader选举
172 5
大数据-63 Kafka 高级特性 分区 副本机制 宕机恢复 Leader选举
|
关系型数据库 MySQL 数据库
【MySQL】-多表设计(一对多、一对一、多对多)
设计数据库时,不同类型的关系需要谨慎考虑,以反映实际需求并优化性能。查询设计良好的数据库通常会更高效,并有助于减少数据冗余和维护成本。同时,确保外键索引的正确使用,可以显著提升查询效率和数据一致性。通过这些原则和技巧的应用,我们可以在遵循数据库设计的最佳实践的同时,确保数据的可扩展性和可维护性。
1382 4
|
调度 数据库 UED
Python使用asyncio包实现异步编程方式
异步编程是一种编程范式,用于处理程序中需要等待异步操作完成后才能继续执行的情况。 异步编程允许程序在执行耗时的操作时不被阻塞,而是在等待操作完成时继续执行其他任务。 这对于处理诸如文件 I/O、网络请求、定时器等需要等待的操作非常有用。
|
消息中间件 存储 监控
深入理解Kafka核心设计及原理(六):Controller选举机制,分区副本leader选举机制,再均衡机制
深入理解Kafka核心设计及原理(六):Controller选举机制,分区副本leader选举机制,再均衡机制
285 1
|
并行计算 负载均衡
多线程和多进程优缺点对比。
多线程和多进程优缺点对比。
491 1
|
Java 开发者 Spring
Spring Boot中的资源文件属性配置
【4月更文挑战第28天】在Spring Boot应用程序中,配置文件是管理应用程序行为的重要组成部分。资源文件属性配置允许开发者在不重新编译代码的情况下,对应用程序进行灵活地配置和调整。本篇博客将介绍Spring Boot中资源文件属性配置的基本概念,并通过实际示例展示如何利用这一功能。
179 1
|
弹性计算 人工智能 测试技术
从零开始使用 ROS CDK 搭建云上解决方案
本文介绍了如何使用阿里云ROS资源编排服务快速部署和管理云资源。主要内容包括:1. 工具准备:安装ROSCDK,选择合适的代码编辑器和IDE,安装AI代码生成插件等。2. 环境准备:创建工程目录,进入虚拟环境,配置阿里云凭证信息,配置ROSCDK。3. 代码编写:根据文档描述,编写ROS代码来创建VPC、VSwitch、ECS等资源。4. 运行代码:执行ROS代码,创建ECS实例并部署FTP服务。总体来说,本文通过简单的步骤,让小白也能快速上手使用ROS资源编排服务,实现自动化部署和管理阿里云资源。
|
网络协议 中间件 数据库
Zookeeper学习系列【三】Zookeeper 集群架构、读写机制以及一致性原理(ZAB协议)
Zookeeper学习系列【三】Zookeeper 集群架构、读写机制以及一致性原理(ZAB协议)
615 0
|
关系型数据库 MySQL 数据安全/隐私保护
MySQL8.0绿色版本——最纯净的安装体验(免去卸载不掉只能重做系统的‘囧‘境)
MySQL8.0绿色版本——最纯净的安装体验(免去卸载不掉只能重做系统的‘囧‘境)
1673 0
|
机器学习/深度学习 人工智能 分布式计算
大模型时代的人工智能+大数据平台,加速创新涌现
2023年10月31日,2023云栖大会上,阿里云副总裁、阿里云计算平台事业部负责人汪军华宣布阿里云人工智能+大数据平台升级发布,以服务大模型时代下各行各业的业务创新。