分布式理论| 青训营笔记

34 阅读2分钟

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

12.jpg

什么是分布式

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

  1. 可用性(容错性)
    一台服务器的系统崩溃并不影响到其余的服务器,仍可以正常对外提供服务。
  2. 可扩展性
    可以通过线性的增加机器资源,来应对不断增长的外部需求。
  3. 资源共享
    如银行,预订系统。
  4. 灵活性
    容易安装,实施和调试新的服务。
  5. 更快的速度
    拥有多台计算机的计算能力,使得它比其他系统有更快的处理速度。
  6. 开放系统
    由于它是开放的系统,本地或者远程都可以访问到该服务。
  7. 更高的性能
    相较于集中式计算机网络集群可以提供更高的性能。

挑战:

  1. 普遍的节点故障
  2. 不可靠的网络
  3. 异构的机器与硬件环境
  4. 安全

Why-How-What

使用者视角:

Why:

  • 数据爆炸,对存储和计算有大规模运用的述求
  • 成本低,构建在廉价服务器上

How:

  • 分布式框架
  • 成熟的分布式系统

What:

  • 理清规模,负载,一致性要求等
  • 明确稳定性要求,制定技术方案

学习者实践:

Why:

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

How:

  • 掌握分布式理论
  • 了解一致性协议

What:

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

常见的分布式系统

分布式存储

  1. Google File System(GFS):google分布式文件系统
  2. Ceph:统一的分布式存储系统
  3. Hadoop HDFS:基于GFS架构的开源分布式文件系统
  4. Zookeeper:高可用的分布式数据管理与系统协调框架

分布式数据库

  1. Google Spanner:google可扩展的、全球分布式的数据库
  2. TiDB:开源分布式关系型数据库
  3. HBase:开源Nosql数据库
  4. MongoDb:文档数据库

分布式计算

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