Raft 论文阅读笔记

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

  • Strong leader
  • Leader election
  • Membership changes

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

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

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

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


更多文章
  • KVM 显卡穿透给 Windows
  • 使用 HTTP Router 处理 Telegram Bot 按钮回调
  • 使用反射(reflect)对结构体赋值
  • GIN 是如何绑定参数的
  • 你好 2022(2021 年终总结)
  • 用Go导入大型CSV到PostgreSQL
  • 使用 OpenWRT 搭建软路由
  • 使用软KVM切换器 barrier 共享键鼠
  • SQL 防注入及原理
  • 使用 gomock 测试 Go 代码
  • gevent不是黑魔法(二): gevent 实现
  • gevent不是黑魔法(一): greenlet 实现
  • 用 entgo 替代 gorm
  • 应用内使用crontab不是那么方便
  • 单测时要不要 mock 数据库?