分布式理论 | 青训营笔记

67 阅读3分钟

这是我参与「 第五届青训营 」伴学笔记创作活动的第 9 天 分布式应用技术是一门新兴的基于网络应用的开发技术,它提供了一种与以往截然不同的网络应用开发模式,实现了高效率,大规模,组件化的分布式程序开发过程。

分布式概念

分布式系统是建立在网络上的软件系统, 分布式系统是由多台计算机组成通过网络进行通信,为了完成共同的任务而协调工作的计算机节点组成的系统, 就好比分布式系统是一个集合,元素则是独立计算机, 给用户的感觉就像一个整体

分布式系统服务一般都是根据项目的模块来划分服务,分散部署不同的独立机器上,一个服务可能负责几个功能,是一种面向SOA架构的,服务之间的通讯交互大多使用HTTP或者RPC协议,

分布式系统相比于传统单系统服务,提高了,可靠性,可用性,扩展性

分布式的特征

分布式系统应具有以下4个特征

  • 分布性:分布式系统由多台计算机组成,每台计算机可以在任意地方,
  • 自治性:分布式系统中各个节点,都是独立的,能自己处理数据,业务,没有主从之分
  • 并行性:一个大的任务划分为多个小任务,在不同节点执行
  • 全局性:分布式系统拥有单一的,全局的进程通信机制,使不同的进程之间可以相互通信,不同计算机之间可以相互访问资源。

常见分布式系统

分布式存储:

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

分布式缓数据库:

  1. Google Spanner: google可打 展的、全球分布式的数据库。
  2. TiDB:开源分布式关系型数据库
  3. HBase:开源Nosq|数据库
  4. MongoDB:文档数据库

分布式计算:

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

系统模型

故障模型

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

image.png

image.png