分布式理论 | 青训营笔记

56 阅读2分钟

分布式理论 | 青训营笔记

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

分布式概述

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

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

劣势:普遍的节点故障、不可靠的网络、异构的机器与硬件故障、安全

优势

对于开发者,优点如下:

  • 适合解决数据爆炸,对存储和计算有大规模运用的诉求
  • 成本低、可以构建在廉价服务器上
  • 拥有成熟的分布式框架和分布式系统

对于学习者:

  • 后端开发必备技能
  • 帮助理解后台服务器之间协作的机理
  • 掌握分布式理论
  • 了解一致性协议

常见的分布式系统

分布式存储:

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

分布式数据库:

  • Google Spanner:google可拓展的、全球分布式的数据库
  • TiDB:开源分布式关系型数据库
  • HBase:开源Nosql数据库
  • MongoDB:文档数据库

分布式计算:

  • Hadoop:基于MapReduce分布式计算框架
  • Spark:在Hadoop基础之上,使用内存来存储数据
  • YARN:分布式资源调度

系统模型

故障模型

故障类别:

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

各种具体故障所对应的类别:

  • 磁盘故障:Fail-stop
  • 磁盘坏道、坏块:Fail-stop,ADB
  • 服务器主板、板卡故障:Crash
  • 网络故障:Byzantine、Omisson
  • 网络分区:Performance
  • 内存故障:ADB
  • 线缆故障:Performance,Omision
  • 内核崩溃:Crash
  • CPU故障:Omission、Crash
  • 电源故障:Omission
  • 软件故障:Byzantine,Crash