Raft笔记1
需积分: 0 75 浏览量
更新于2022-08-04
收藏 1.88MB PDF 举报
Raft笔记1 - 服务器交互
Raft是一种为了管理复制日志的一致性算法,旨在解决分布式系统中的容错问题。它由多副本状态机的角度提出,用于管理多副本状态机的日志复制。Raft算法使用了更强的假设来减少了需要考虑的状态,使之变的易于理解和实现。
Raft中的角色和作用:
1. Leader(领导者):接受所有客户端请求,并向Follower同步请求日志,当日志同步到大多数节点上后告诉Follower提交日志。
2. Follower(跟随者):接受并持久化Leader同步的日志,在Leader告知日志可以提交之后,提交日志。
3. Candidate(候选人):它是处于领导者(Leader)与跟随者(Follower)之间的状态,用于参与leader选举。
Raft概念和具体协议:
1. 状态(State):Raft中的状态包括Leader、Follower、Candidate三种状态。
2. 追加条目RPC(AppendEntries RPC):Leader向Follower同步日志的RPC调用。
3. 请求投票RPC(RequestVote RPC):Candidate向其他服务器请求投票的RPC调用。
4. 所有服务器需遵守的规则:Raft协议中所有服务器需遵守的一些规则,例如Leader选举的限制条件、日志的提交时机等。
任期(Terms)的概念:
1. 任期的概念:Raft中的任期是指Leader的选举周期,Leader在任期内会周期性地向Follower发送心跳信息。
2. 任期的变化关系:Leader的任期可能会因为多种原因而变化,例如Leader宕机、网络延迟等。
Raft算法的特性:
1. 安全性保证:Raft算法可以保证绝对不会返回一个错误的结果,在非拜占庭错误情况下,包括网络延迟、分区、丢包、冗余和乱序等错误都可以保证正确。
2. 可用性:Raft算法可以保证集群中只要有大多数的机器可运行并且能够相互通信、和客户端通信,就可以保证可用。
3. 不依赖时序来保证一致性:Raft算法可以在物理时钟错误或者极端的消息延迟情况下保证一致性。
Raft作者认为Paxos的缺点:
1. 可理解性:Paxos算法不够直观,构成多决策Paxos增加了很多错综复杂的规则。
2. 缺乏标准的实现:Paxos算法描述和实现现实系统中间有着巨大的鸿沟,最终的系统建立在一种没有经过证明的算法之上。
Raft的动机:
1. 可理解性:Raft算法的主要动机是为了提高可理解性,以便根据现实需求对Raft进行扩展。
2. 问题分解:Raft算法将问题分解为可被解决的、可解释的和可理解的子问题(leader选举问题,日志同步问题,安全信证明)削减状态空间数量,减少状态空间。
Raft算法的优点:
1. 可理解性:Raft算法的设计目标是提高可理解性,使得算法变得简单易懂。
2. 高效性:Raft算法可以在大多数情况下保证高效的性能。
3. 安全性:Raft算法可以保证安全性,使得系统变得更加可靠。
zh222333
- 粉丝: 38
- 资源: 296
最新资源
- 海尔:企业品牌归根到底是文化.docx
- 马蔚华:幸福企业是基业长青的企业文化.docx
- 没有“三个共同”,就没有企业文化.docx
- 马云:倒立是阿里巴巴的文化精髓.docx
- 内圣外王,用文化缔造未来.docx
- 企业家,请抱着感恩的心态做企业.docx
- 牛根生:用培训克隆企业文化.docx
- 企业家 企业文化.docx
- 企业家是企业文化的倡导者.docx
- 企业家的魅力打造.docx
- 企业家企业文化的辩证关系 所有员工的文化特征.docx
- 王均豪:百年企业的传承应靠文化.docx
- 什么是真正的企业家精神.docx
- 王石淡出万科决策层 选择理想是企业文化进步.docx
- 张瑞敏眼中的企业文化.docx
- 魏杰论企业文化的四大类型.docx