分布式理论| 青训营笔记

92 阅读3分钟

这是我参与「第五届青训营 」伴学笔记创作活动的第 7 天

一、本堂课重点内容:

  • 分布式概述
  • 系统模型
  • 理论基础
  • 分布式事务
  • 共识协议
  • 分布式实践

二、详细知识点介绍:

  • 分布式系统是计算机程序的集合,这些程序利用多个独立计算节点的计算资源来实现共同的目标。分为分布式计算、分布式存储、分布式数据库等

  • 优势:去中心化、低成本、弹性、资源共享、可靠性高

  • 挑战:普遍的节点故障、不可靠的网络、异构的机器与硬件环境、安全

  • 分布式存储:GFSgoogle分布式文件系统 Hadoop HDFS基于GFS架构的开源分布式文件系统 Zookeeper高可用的分布式数据管理与系统协调框架

  • 分布式数据库:HBase,MangoDB

  • 分布式计算:Hadoop、Spark

  • 最难处理的故障:节点可以篡改发送给其他节点的数据,大多数分布式系统不解决拜占庭故障

  • 慢了还不如死掉,死掉后寻找一个新的节点可以更快解决问题

  • 拜占庭将军问题:共识和消息传递的不同:即便保证了消息传递成功,也不能保证达成共识。TCP三次握手实在两个方向确认包的序列号,增加了超时重试,是两将军问题的一个工程解。

  • 一致性和可用性是对矛盾

  • 线性一致性和强一致性相似

  • 利用逻辑时钟,我们可以对整个系统中的事件进行排序

  • CAP 一致性,可用性和隔离性 CA(单机) CP(安全) AP(用户体验)

  • Base理论是对cap中一致性和可用性权衡的结果,核心思想:基本可用,软状态,最终一致性(AP)

  • 两阶段提交 预写式日志被保持在可靠的存储设备上 prepare阶段和commit阶段 在prepare阶段,如果某个事务参与者反馈失败消息,说明该节点的本地事务执行不成功,必须回滚。

  • MVCC是一种并发控制方法,为每一个修改保存一个版本,和事务的时间戳相关联。可以提高并发性能,解决脏读的问题。

  • Quorum NWR N备份数据份数 W一次成功的更新操作要求至少有W份数据写入成功 R一次成功的读取操作要求至少有R份数据成功读取 W+R>N 允许数据覆盖 将CAP的选择交给用户

  • Raft协议是一个分布式一致性算法,即使出现部分节点故障2,网络延时等情况,也不影响各节点,进而提高系统的整体可用性。leader、follower、candidate

  • Leader - 领导者:Leader 负责处理所有的客户端请求,并向Follower同步请求日志,当日志同步到大多数节点上后,通知Follower提交日志

  • Follower - 跟随者:接受并持久化Leader同步的日志,在Leader告知日志可以提交后,提交日志

  • Candidate - 备选者:Leader选举过程中的临时角色。向其他节点发送请求投票信息

  • Log(日志):节点之间同步的信息,以只追加写的方式进行同步,解决了数据被覆盖的问题

  • Term(任期号):单调递增,每个Term内最多只有一个Leader

  • Committed:日志被复制到多数派节点,即可认为已经被提交

  • Applied:日志被应用到本地状态机:执行了log中命令,修改了内存状态

四、课后个人总结:

  • 分布式一般在参加工作后才会接触的,应该是属于基础架构的工作范围吧。基于CAP理论进行取舍。通过MIT的课程、论文等可以更加深入的了解分布式算法。

五、引用参考: