这是我参与「第五届青训营 」笔记创作活动的第3天
分布式理论基础
分布式的概念
跨多个节点的计算机程序的集合
分布式的优势
- 去中心化
- 低成本
- 弹性
- 资源共享
- 可靠性高
分布式的挑战
故障、网络、环境、安全
常见分布式系统
- 分布式存储:GFS、Ceph、HDFS、Zookeeper
- 分布式数据库:Spanner、TiDB、HBase、MangoDB
- 分布式计算:Hadoop、YARN、Spark
拜占庭将军问题
可类比通讯领域的红军蓝军,但侧重点不同,前者侧重一致性,后者侧重可靠性
共识和一致性
一致性通俗来讲是各分布节点对同一目标、数据的观察与反应是相同的
事件顺序与理论基础
CAP理论
定义:CAP分别是分别代表一致性、可用性、分区容错性,三者不可同时达到 CAP诞生了三类系统:
- CA系统:传统数据库的代表
- AP系统:放弃强一致性,保证高可用,不少nosql存储系统采用
- CP系统:放弃可用性,保证数据一致性
针对故障场景,可以通过故障转移的方式,做一个相对较优的解决方式,即允许一个进程作为Master,其他进程作为Backup,当故障时将请求转移给Backup进行处理
ACID
- 原子性(Atomicity)
- 一致性(Consistency)
- 隔离性(Isolation)
- 持久性(Durability)
BASE
BASE理论是针对AP系统而言的,其来源于对大型互联网分布式实践的总结
- Basically Available(基本可用):假设系统,出现了不可预知的故障,但还是能用
- Soft state(软状态):允许系统中的数据存在中间状态,并认为该状态不影响系统的整体可用性
- Eventually consistent(最终一致性):数据最终一定能够达到一致的状态
分布式事务
事务是数据库系统中非常重要的概念,它是数据库管理系统执行过程中的一个逻辑单元,它能够保证一个事务中的所有操作要么全部执行,要么全都不执行
- 二阶段提交
- 三阶段提交
- MVCC
共识协议
- Qunrum NWR模型
- RAFT
- Paxos