这是我参与「第五届青训营 」伴学笔记创作活动的第13天。
五、共识协议
1.Quorum NWR模型
三要素:
- N:在分布式存储系统中,有多少份备份数据
- W:一次成功的更新操作系统要求至少有w份数据写入成功
- R:一次成功的读取数据操作要求至少有R份数据成功读取
为了保持强一致性,需保证 W + R > N
2.RAFT协议
Raft协议是一种分布式一致性算法(共识算法),即使出现部分节点故障,网络延时等情况,也不影响各节点,进而提高系统整体的可用性。Raft是使用较为广泛的分布式协议,其也使用了Quorum机制。
3.Paxos协议
Paxos算法与RAFT算法的区别:
- Multi-Paxos可以并发修改日志,而Raft写日志操作必须是连续的
- Multi-Paxos可以随机选主,不必最新最全的节点当选Leader
Paxos优势:写入并发性能高,所有节点都能写入
Paxos劣势:没有一个节点有完整的最新数据,恢复流程复杂,需要同步历史记录
六、分布式实践
1.MapReduce
Mapper:将输入分解为多个Job并行处理,彼此间几乎没有依赖关系
Shuffler:将Mapper结果打乱,防止数据倾斜
Reducer:对map阶段的结果进行全局汇总
容错:
- Mapper故障:由中心化节点重新发起调度,新起Mapper重跑job
- Reducer故障:重跑Mapper,代价大
2.分布式KV
架构:将海量结构化数据Key分成不同的Region,每个Region构建一个单机KV数据库,Region之间形成Raft Groups,做到强一致
容错:当Node故障时,通过Raft Learner模式进行数据修复
弹性:当出现局部Key热点或数据膨胀时,Region可以进行Split操作,分成两个子Region,反之收缩时进行Merge操作