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

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

相关文章
|
1月前
|
分布式计算 负载均衡 算法
Hadoop-31 ZooKeeper 内部原理 简述Leader选举 ZAB协议 一致性
Hadoop-31 ZooKeeper 内部原理 简述Leader选举 ZAB协议 一致性
30 1
|
存储
zookeeper的ZAB协议的原理以及底层源码实现超级详解 2
zookeeper的ZAB协议的原理以及底层源码实现超级详解
143 1
zookeeper的ZAB协议的原理以及底层源码实现超级详解 1
zookeeper的ZAB协议的原理以及底层源码实现超级详解
95 1
|
存储 算法 关系型数据库
浅谈 Raft 分布式一致性协议|图解 Raft
本篇文章将模拟一个KV数据读写服务,从提供单一节点读写服务,到结合分布式一致性协议(Raft)后,逐步扩展为一个分布式的,满足一致性读写需求的读写服务的过程。
796 0
浅谈 Raft 分布式一致性协议|图解 Raft
|
存储 算法 架构师
【架构师指南】带你彻底认识 Paxos 算法、Zab 协议和 Raft 协议的原理和本质
【架构师指南】带你彻底认识 Paxos 算法、Zab 协议和 Raft 协议的原理和本质
1624 0
【架构师指南】带你彻底认识 Paxos 算法、Zab 协议和 Raft 协议的原理和本质
|
算法
分布式学习十:ZAB协议
分布式学习十:ZAB协议
103 0
分布式学习十:ZAB协议
|
算法 Java 开发者
简单回顾 Zab 协议集群模式原理|学习笔记
快速学习简单回顾 Zab 协议集群模式原理
148 0
简单回顾 Zab 协议集群模式原理|学习笔记
|
存储 算法 安全
分布式之搞懂Raft算法
《分布式》系列
164 0
分布式之搞懂Raft算法
|
算法 Java 开发者
Raft 协议选举基本的概念 | 学习笔记
快速学习 Raft 协议选举基本的概念
131 0