这是我参与「第五届青训营 」伴学笔记创作活动的第 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