分布式(一)| 青训营笔记

56 阅读2分钟

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

简介

分布式系统时计算机程序的集合,这些程序利用跨多个独立计算节点的计算资源来实现共同的目标

特点

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

优点

  • 去中心化
  • 低成本
  • 弹性
  • 资源共享
  • 可靠性高

缺点

  • 普遍的节点故障
  • 不可靠的网络
  • 异构的机器与硬件环境
  • 安全性低

常见的分布式系统

分布式存储

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

分布式数据库

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

分布式计算

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

系统模型

故障模型

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

共识和一致性

  • 最终一致性: 不同节点开始可能数据不一致但是最终总会数据一致
  • 线性一致性: 当某个节点读到更新的数据后,即使将消息同步给其他客户端