Etcd Raft 模块
Etcd Raft 模块实现了 Raft 协议的全部功能。包括:
- 领导者选举
- 日志复制
- 日志压缩
- 节点变更
- 领导者转移
- 领导者和追随者都提供线性化的只读查询
- 包括基于租约的线性化只读查询
同时, Etcd Raft 模块,还优化增强了以下功能:
- 乐观流水线减少日志复制延迟
- 日志复制的流控制
- 批处理 Raft 消息以减少同步的网络 I/O 调用
- 批处理日志条目以减少磁盘同步 I/O
- 并行写入领导者的磁盘
- 追随者重定向写日志操作到领导者
- 领导者失去法定人数时自动下台
- 大多数节点失效时防止无限制的日志增长
笔者在看 Etcd Raft 模块前,看过 hashicorp/raft 的实现
相比之下, Etcd Raft 模块的代码质量、功能完成度、性能优化程度均远高于 hashicorp/raft
是学习 Raft 的最佳教程,同时也是网络性能优化、磁盘读写性能优化非常好的参考材料
本系列内容规划
将依次按以下 4 个方面介绍:
内容 | 篇幅预估 |
---|---|
目录文件说明 | 1 篇 |
数据结构与功能 | 8 篇 |
协议与交互过程 | 8 - 10 篇 |
整体框架 | 2 篇 |
敬请关注!