Raft 协议选举基本的概念 | 学习笔记

简介: 快速学习 Raft 协议选举基本的概念

开发者学堂课程【精通 Spring Cloud AlibabaRaft 协议选举基本的概念学习笔记,与课程紧密联系,让用户快速学习知识。

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


Raft 协议选举基本的概念


内容介绍

一、Zab 算法怎么写

二、Raft 整个底层实现原理


一、Zab 算法怎么写

根据 zab 算法基本原则手写,启用时进行比较,先比较 zxidzxid 谁最大,谁就是 leaderzxid 相等,比较 myidmyid 谁最大,谁就是 leader,并且 leader 要满足票数过半。


二、Raft 整个底层实现原理

Raft 协议算法中分为的角色|名词:

1)状态:分为三种 跟随者、竞选者(候选人)、领导角色

注意:任何算法都是来源于生活

举个例子,Raft 协议类似于台湾选举,可以进行投票,会分为几个角色。跟随者只能进行投票,不能参与竞选。

竞选者好比台湾,分为两个党派,一个是民主党一个是国民党,民主党有蔡英文,国民党有韩国瑜,跟随者就要投票给竞选者,相当于要投给蔡英文还是韩国瑜。蔡英文、韩国瑜就相当于竞选者即候选人,投票的人就相当于跟随者。

第三种领导角色,相当于台湾选举,假如很多台湾人选了蔡英文,那么蔡英文成为领导角色。跟随者就是专门给别人投票的,竞选者就是被别人投票的有可能成为领导角色,领导角色只能有一个,不能有多个。

2)大多数: >n/2+1  3/2=1+1=2

n 表示集群总数节点,除以2表示什么呢,举个例子,假设 n=3,3/2=1(不等于0.5程序运算都整除),3/2=1+1=2,满足大于等于的情况下,就可以被使用。

3)任期:每次选举一个新的领导角色,任期都会增加

注意:任何算法都是来源于生活

比如选举第一届、第二届、第三届主席,一二三就表示第几任主席,表任期。

(4)竞选者谁的票数最多,谁就是领导角色

竞选者一定会成为领导角色吗?

不一定,看票数多少。

5)存在的疑问

多个竞选者,产生的票数都完全一样,谁到底是领导角色,服务器集群是偶数的情况下。

一旦集群是偶数,在除以2的情况下很容易产生相等票数。

这个问题只要集群是奇数的情况下是不可能存在的。

相关文章
|
10月前
|
NoSQL Redis Sentinel
从哨兵Leader选举学习Raft协议实现(下)(二)
从哨兵Leader选举学习Raft协议实现(下)
37 0
|
10月前
|
Sentinel
从哨兵Leader选举学习Raft协议实现(下)(一)
从哨兵Leader选举学习Raft协议实现(下)
31 0
|
10月前
|
监控 NoSQL 算法
从哨兵Leader选举学习Raft协议实现(上)
从哨兵Leader选举学习Raft协议实现(上)
57 0
|
存储 算法 关系型数据库
浅谈 Raft 分布式一致性协议|图解 Raft
本篇文章将模拟一个KV数据读写服务,从提供单一节点读写服务,到结合分布式一致性协议(Raft)后,逐步扩展为一个分布式的,满足一致性读写需求的读写服务的过程。
664 0
浅谈 Raft 分布式一致性协议|图解 Raft
|
存储 算法 架构师
【架构师指南】带你彻底认识 Paxos 算法、Zab 协议和 Raft 协议的原理和本质
【架构师指南】带你彻底认识 Paxos 算法、Zab 协议和 Raft 协议的原理和本质
562 0
【架构师指南】带你彻底认识 Paxos 算法、Zab 协议和 Raft 协议的原理和本质
|
算法
分布式学习十:ZAB协议
分布式学习十:ZAB协议
71 0
分布式学习十:ZAB协议
|
Java Nacos 开发者
Raft 协议选举底层实现原理 | 学习笔记
快速学习 Raft 协议选举底层实现原理
87 0
Raft 协议选举底层实现原理 | 学习笔记
|
Java 开发者 Spring
Raft 协议故障重新选举 | 学习笔记
快速学习 Raft 协议故障重新选举
97 0
|
算法 Java 开发者
简单回顾 Zab 协议集群模式原理|学习笔记
快速学习简单回顾 Zab 协议集群模式原理
115 0
简单回顾 Zab 协议集群模式原理|学习笔记
|
存储 消息中间件 算法
zookeeper知识结构2-zab协议
通过《zookeeper知识结构1》了解了zookeeper是什么?为什么使用zookeeper? 以及zookeeper内部数据结构,选举机制
89 0
zookeeper知识结构2-zab协议