背景
Paxos算法是最早的强一致性算法,1990年被Leslie Lamport提出,但是由于其难以理解和实现,导致没有被广泛使用。因此,2013年Raft算法被提出,功能与Paxos算法相同,更易于理解,实现简单,因此迅速被广泛推广使用,已经成为当前主流的强一致性算法。(从CAP角度,Raft算法选择了CP,舍弃了A,选主期间会出现短暂的不可用)
Raft基础
Term
Term为逻辑时钟,用来比较数据的新旧、Leader的新老、请求是否过时等,每次选举产生新的Term,如下图所示:
日志
- Entry:日志文件中的每条记录,由Term和命令组成;
- Index:每条记录的索引或偏移量;
角色/状态
- Leader:主节点,负责客户端请求处理,以及集群节点间数据同步;
- Follower&#x