分布式理论 pt. 1 初见分布式 | 青训营笔记

157 阅读2分钟

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

本节重点

初步了解分布式,对分布式能够具有一定的了解。

分布式概述

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

分布式的优势有:

  1. 去中心化
  2. 低成本
  3. 弹性 (服务用户)
  4. 资源共享
  5. 可靠性高

当前分布式部署面临的挑战有:

  1. 普通的节点故障 (家常便饭)
  2. 不可靠的网络 (网络故障)
  3. 异构的机器和硬件环境
  4. 安全

分布式可以用于很多方面,如文件存储系统、数据库系统、数据库同步系统、缓存系统、实时计算系统、服务器集群等。

Why - How - What

从使用者的角度上看

why: 数据爆炸,对存储和计算有大规模运用的诉求;成本低,建立在廉价服务器之上。

how: 分布式框架;成熟的分布式系统。

what: 理清规模、负载、一致性要求等;明确稳定性要求,制定技术方案。

从学习者视角

why: 后端开发必备技能;帮助理解后台服务器之间协作的机理。

how: 了解分布式理论;了解一致性协议。

what: 把要点深入展开,针对难点搜索互联网资料学习;将所学知识运用于实践。

常见分布式系统

分布式储存:Google File System(GFS)、Ceph、Hadoop HDFS、Zookeeper等。

分布式数据库:Google Spanner、TiDB、HBase、MongoDB等。

分布式计算:Hadoop、Spark、TARN等

系统模型

故障模型

通过正确性,时间,状态和原因分类。

  1. Byzantine failure:节点可以任意篡改发送给其他节点的数据。
  2. Authentication detectable byzantine failure(ADB):节点可以篡改数据,但不能伪造其他节点的数据。
  3. Performance failure:节点未在特定时间段内收到数据,即时间太早或太晚。
  4. Omission failure:节点收到数据的时间无限晚,即收不到数据。
  5. Crash failure:在 Omission failure 的基础上,增加了节点停止响应的假设,也即持续性的 Omission failure。
  6. Fail-stop failure:在 Crash failure 的基础上增加了错误可检测的假设。

以下是一些可能出现的故障的对应情况:

image.png

阶段小结

这段课程中,我学习了什么是分布式、其优缺点以及一些系统模型(主要是故障模型),接下来将由拜占庭将军问题,展开下面的学习,主要通过这个问题思考分布式的共识和一致性,时间和事件顺序的一些问题。