这是我参与「第五届青训营 」伴学笔记创作活动的第 8 天
分布式理论 —— 现代架构基石
分布式概述
什么是分布式
- 优势:
- 去中心化
- 低成本
- 弹性
- 资源共享
- 可靠性高
- 挑战:
- 普遍的节点故障
- 不可靠网络
- 异构的机器与硬件环境
- 安全
why-how-what
常见分布式系统
- 分布式储存:
- Google File System:分布式文件系统
- Ceph:统一的分布式储存系统
- Haddop HDFS:基于GFS架构的开源分布式文件系统
- Zookeeper:高可用的分布式数据管理与系统协调框架
- 分布式数据库:
- Google spanner:可扩展的、全球分布式的数据库
- TiDB:开源分布式关系型数据库
- HBase:KAIYUAN Nosql数据库
- MongoDB:文档数据库
- 分布式计算:
- hadoop:基于mapreduce分布式计算框架
- spark:在hadoop基础之上,使用内存来储存数据
- YARN: 分布式资源调度
故障模型:
- Byzantine failure:节点可以任意篡改发送给其他节点的数据
- authentiction detectable Byzantine failure(ADB):by特例,节点可以篡改数据、但不能伪造其他节点的数据
- performance failure:节点未在特定时间段内收到数据,即时间太早或太晚
- omissin failure:节点收到数据的时间无限晚,既收不到数据
- crash failure:在om基础上增加了节点停止响应的假设,也即持续性的om
- fail-stop failure:在cr的基础上增加了错误可检测的假设
理论基础
CAP
- c:一致性
- a:可用性
- p:分区容错性
- 无法百分百相容cap
- ca:加强一致性和可用性,传统的单机数据库的选择
- ap:注重用户体验感的系统
- cp:钱财安全相关的系统
ACID
事务: 数据库管理系统执行过程的一个逻辑单元,他能够保证一个事务中的所有操作要么全部执行,要么全部不执行。
- 原子性(A):所有操作要么全部成功,要么全部失败回滚
- 一致性(C):一个事物指向前后都必须处于一致性状态
- 隔离性(I):不能被其他事务的操作所干扰
- 持久性(D):一个事务一旦被提交,那么改变就是永久性的
BASE
针对于ap系统
分布式事务
MVCC:时间戳预言机
共识协议
Quorum NWR模型
- N:在分布式存储系统中,有多少份备份数据
- W:代表一次成功的更新操作要求至少有w份数据写入成功
- R:代表一次成功的读数据操作要求至少有r份数据成功读取
**W+R>N ** :保证前一致性