这是我参与「第五届青训营 」伴学笔记创作活动的第 8 天
1. 分布式概述
-
常见的分布式系统
- 分布式存储:GFS、Ceph、HDFS、Zookeeper
- 分布式数据库:Spanner、TiDB、HBase、MangoDB
- 分布式计算:Hadoop、YARN、Spark
2. 系统模型
故障模型
六种故障模型,从处理的难易程度分类
- Byzantine failure:节点可以任意篡改发送给其他节点的数据,是最难处理的故障
- Authentication detectable byzantine failure (ADB):节点可以篡改数据,但不能伪造其他节点的数据
- Performance failure:节点未在特定时间段内收到数据,即时间太早或太晚
- Omission failure:节点收到数据的时间无限晚,即收不到数据
- Crash failure:节点停止响应,持续性的故障
- Fail-stop failure:错误可检测,是最容易处理的故障
3. 理论基础
-
CAP理论
- C(Consistence):一致性
- A(Availability):可用性
- P(Partitioning):分区容错性:分布式系统在遇到任何网络分区故障的时候,仍然能够对外提供满足一致性和可用性的服务,除非整个网络都发生了故障
-
CAP诞生了三类系统:
- CA系统:传统数据库的代表
- AP系统:放弃强一致性,保证高可用,不少nosql存储系统采用
- CP系统:放弃可用性,保证数据一致性
-
ACID理论
- BASE理论
4. 分布式事务
- MVCC:多版本并发控制的方法
5. 共识协议
- RAFT协议
Raft协议是一种分布式一致性算法(共识算法),即使出现部分节点故障,网络延时等情况,也不影响各节点,进而提高系统的整体可用性。Raft是使用较为广泛的分布式协议
6. 分布式实践
总结思考
之前也了解过分布式相关,学习过6.824的部分课程及tinykv的前两个lab,今天更加系统性地串了一遍分布式架构的知识。
参考资料