Raft 论文阅读笔记

Raft是用来保证集群数据一致性的协议或者说算法。特点:

  • Strong leader
  • Leader election
  • Membership changes

Raft保证同一个时间内集群内只存在一个Leader(当然是指通信上能够互相连通的集群) 如果Leader节点挂了,那么会进行选举操作,选举需要获得半数以上的投票。

集群内所有节点在刚启动的时候都是Follower状态,然后一段时间后没有收到心跳包, 转而到达选举超时,然后转变成选举态,其中会有一个节点选举成功变成leader,其余变成 follower,如果有两个节点票数相同,那么重新进行选举。

其中投票的时候,每个选举者会先给自己投一票,然后follower会判断term是否大于等于 自己的currentTerm,如果leader收到比自己大的term的心跳包,则变成follower。

Raft协议的核心内容都在论文的第五节,因为笔记在纸质论文上(还是看纸质的论文舒服 随时可以做笔记,眼睛也不那么累),就没有全部搬上来了。


更多文章
  • To B(usiness) 和 To C(ustomer)
  • Cookie 中的secure和httponly属性
  • 常见的软件架构套路
  • Google Ads使用体验
  • Go的custom import path
  • 如何挖掘二级子域名?
  • Go Module 简明教程
  • 写了一个Telegram Bot:自动化分享高质量内容
  • 为什么我选择放弃运营微信公众号?
  • ArchLinux 怎么降级 package ?
  • Vim打开很慢,怎么找出最慢的插件?怎么解决?
  • Web后端工程师进阶指南(2018)
  • How to implement fork syscall in Golang?
  • macOS ansible 遇到 rsync: --chown=www-data: unknown option
  • 关于运营的思考-运营要怎么做?