分布式理论|青训营笔记

93 阅读3分钟

分布式理论|青训营笔记


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

分布式概述

什么是分布式

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

分布式的优点

去中心化

区别于将程序部署在一个大的服务器中,部署在由小的服务器组成的集群中会有更高的运行效率,同时也更有利于维护。

低成本

大型服务器的成本往往较高,而分布式允许多个小服务器共同作业,减少了服务器成本。

弹性

业务人员可以根据流量大小,动态的调整业务能力。比如在高峰期或节假日对服务扩容,或白天采用在线服务而夜晚使用离线计算。

资源共享

单服务器的存储能力是有限的,使用分布式可以构成一个大的存储池,进行资源共享。

可靠安全

集群中一个节点出现故障,可以用它的副本来替代,保证了服务的可靠性。

分布式的挑战

普遍的节点故障

单服务器故障的概率是很小的,随着服务器的增加,发生故障的可能性越大,对于一个有成千上万台服务器的集群来说,发生故障是必然的。

不可靠的网络

不同于程序中的true或false,网络多一种不确定的状态。在节点通信时,若网络无响应,则不确定是true还是false。体现在编程中处理的状态变多,情况更为复杂。

异构的机器与硬件环境

不同的环境对程序运行的影响很大,调度到不同服务器上性能难以预测。

安全性

大型服务器集群一旦被攻破,出现数据泄露,后果是灾难性的。

为什么要使用分布式

对于使用者

分布式有上述五种优势,能应对对计算与存储有高需求的场景,并且能降低成本。

对于学习者

分布式是后端开发的必备技能,有助于理解后端服务器之间的协作机理。

如何学习分布式

学习分布式理论,了解一致性协议。
深入展开难点,将理论运用于实践。

常见分布式系统

分布式存储

  1. Google File System: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:分布式资源调度

系统模型