分布式理论 | 青训营笔记

71 阅读3分钟

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

分布式概述

什么是分布式

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

  • 优势:

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

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

背景与展望

为什么使用分布式:

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

如何使用分布式:

1、分布式框架 2、成熟的分布式系统

分布式要做什么:

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

常见的分布式系统

常见的分布式存储

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:分布式资源调度

理论基础

CAP理论

cap理论是指consistence一致性,要保证数据的多个副本保持一致,

availability可用性,要保证服务一直处于可用状态,

network partioning分区容错性,要保证在遇到网络分区故障时,不同时脱机,一部分能用的服务。

在网络分区时,我们要在可用性和一致性之间选择,近似解决方法是把故障节点的负载转移给备用节点。

ACID理论

事物是数据库的重要概念,事物是一系列数据操作的单元。事物可以保证一个事务中的所有操作整体执行。事物的四个概念是原子性,一致性,隔离性和持久性。

BASE理论

Base理论是对cap中一致性和可用性权衡的结果。核心思想是:

Basically Available(基本可用):假设系统出现了不可预知的故障,但仍可用,相较于正常的系统,响应时间的损失或功能的损失。

Soft state(软状态):允许数据存在中间状态,并认为该状态不影响系统的整体可用性,允许系统在多个不同节点的数据副本存在数据延时。

Eventually consistent(最终一致性):系统能够保证在没有其他新的更新操作的情况下,数据最终一定能达到一致状态。

分布式事务

  • 二阶段提交
  • 三阶段提交
  • MVCC

共识协议

  • Quorum NWR模型 三要素
    • N:在分布式存储系统中,有多少备份数据
    • W:代表一次成功的更新操作要求至少有w份数据写入成功
    • R:代表一次成功的读数操作要求至少有R份数据成功读取 需要注意的是,为保证强一致性,要保证W+R>N
  • RAFT协议

分布式实践

  • MapReduce
  • 分布式KV