当前位置:网站首页>Raft 协议
Raft 协议
2022-07-03 13:33:00 【抓手】
对于强⼀致性共识算法,目前最多使用的就是 Raft 协议。
Raft协议成熟的实现案例
- 蚂蚁金服的JRaft;
- Zookeeper 的 ZAB;
- Consul 的 Raft;
- 百度的 braft;
- Apache 的 Ratis;
Raft角色
- 跟随者(Follower):普通群众,默默接收和来自领导者的消息,当领导者心跳信息超时的时候,就主动站出来,推荐自己当候选人。
- 候选人(Candidate):候选人将向其他节点请求投票 RPC 消息,通知其他节点来投票,如果赢得了大多数投票选票,就晋升当领导者。
- 领导者(Leader):处理写请求、管理日志复制和不断地发送心跳信息(维持领导地位)。
随机超时时间特性
Raft 算法中具有随机超时时间特点,每个节点等待领导者节点心跳信息的超时时间间隔是随机的。为了防止多个节点同时发起投票,每个节点分配的选举超时时间也是随机的。
选举过程
- 初始状态,所有节点都是跟随者。
- 当集群中没有领导者时,等待超时时间最小的节点会因为没有等到领导者心跳信息,发生超时。
- 超时自荐,此时该节点就会增加自己的任期编号,并推举自己为候选人,先给自己投一票,然后向其他节点发送请求投票RPC消息,请它们选举自己为领导者。
- 选举投票,其他节点接受到候选人的RPC消息时,并且在编号为1的任期内,没有投过票,那么就把选票投给该候选人,然后增加自己的任期编号。
- 新领导产生,候选人在选举超时时间内赢得了大多数的选票,那么它就会成为本届任期内新的领导者。
- 正常状态,领导者将周期性地发送心跳消息到其他服务。

边栏推荐
- Spring cup eight school league
- Reflection -- basic usage
- Qt学习22 布局管理器(一)
- Page generation QR code
- Redis:Redis的数据结构、key的操作命令
- GoLand 2021.2 configure go (go1.17.6)
- Redis:字符串類型數據的操作命令
- 核酸修饰的金属有机框架药物载体|PCN-223金属有机骨架包载Ad金刚烷|ZIF-8包裹阿霉素(DOX)
- Mysql:insert date:sql error [1292] [22001]: data truncation: incorrect date value:
- Go language web development series 27: Gin framework: using gin swagger to implement interface documents
猜你喜欢

Installation impression notes

GoLand 2021.1: rename the go project

Redis:字符串類型數據的操作命令

【吉林大学】考研初试复试资料分享

金属有机骨架MOFs装载非甾体类抗炎药物|ZIF-8包裹普鲁士蓝负载槲皮素(制备方法)

JVM object lifecycle

MySQL 数据处理值增删改

Mastering the cypress command line options is the basis for truly mastering cypress

Redis: commandes d'action pour les données de type chaîne

Ocean CMS vulnerability - search php
随机推荐
全局事件总线
QT learning 25 layout manager (4)
jvm-运行时数据区
page owner特性浅析
Uio-66-cooh loaded bendamostine | hydroxyapatite (HA) coated MIL-53 (FE) nanoparticles | baicalin loaded manganese based metal organic skeleton material
Go language unit test 3: go language uses gocovey library to do unit test
Comprehensive case of MySQL data addition, deletion, modification and query
Uniapp skills - scrolling components -1
项目协作的进度如何推进| 社区征文
3D视觉——2.人体姿态估计(Pose Estimation)入门——OpenPose含安装、编译、使用(单帧、实时视频)
JS general form submission 1-onsubmit
Solve the problem of dormitory router campus network sharing login
PHP maze game
Folic acid modified metal organic framework (zif-8) baicalin loaded metal organic framework composite magnetic material (AU- [email
如何使用lxml判断网站公告是否更新
JS Part 2
GoLand 2021.2 configure go (go1.17.6)
Analysis of the characteristics of page owner
[ACNOI2022]猜数
SQL Injection (AJAX/JSON/jQuery)