这是我参与「第五届青训营」伴学笔记创作活动的第 8 天
一、本堂课具体内容
- 分布式概述
- 系统模型
- 理论基础
- 分布式事务
- 共识协议
- 分布式实践
二、详细知识点介绍:
-
分布式概述
-
什么是分布式
分布式系统是计算机程序的集合,这些程序利用跨多个独立计算节点的计算资源来实现共同的目标。可以分为分布式计算、分布式存储、分布式数据库等。
优势:1.去中心化 2.低成本 3.弹性 4.资源共享 5.可靠性高
挑战:1.普遍的节点故障 2.不可靠的网络 3.异构的机器与硬件环境 4.安全
-
常见的分布式系统
-
分布式存储
- Google File System (GFS) : google分布式文件系统
- Ceph:统一的分布式存储系统
- Hadoop HDFS:基于GFS架构的开源分布式文件系统
- Zookeeper:高可用的分布式数据管理与系统协调框架
-
分布式数据库
- Google Spanner: google可扩展的、全球分布式的数据库
- TiDB:开源分布式关系型数据库
- HBase:开源Nosql数据库
- MongoDB:文档数据库
-
分布式计算
- Google Spanner: google可扩展的、全球分布式的数据库
- TiDB:开源分布式关系型数据库
- HBase:开源Nosql数据库4.MongoDB:文档数据库
-
-
-
系统模型
-
故障模型
-
共识一致性
-
最终一致性
-
线性一致性
-
-
时间和事件顺序
1978年Leslie Lamport发表在Communications of the ACM上的论文Time, Clocks,and the Ordering of Events in a Distributed System。我们定义“happened before”关系,记为"→"。其满足如下三个条件:
- 如果a和b 是在相同节点上的两个事件,a在b之前发生,则定义: a→b
- 如果事件a表示某个节点发送某条消息,b是另一个节点接受这条消息,则有a→b
- 如果有a→b 且b→c,则有a→c
-
-
理论基础
(后面都只大概记录,都没咋听懂...)
- CAP理论
- ACID理论
- BASE理论
-
分布式事务
- 二阶段提交 : 为了使基于分布式系统架构下的所有节点在进行事务提交时保持一致性而设计的—种演算法
- 三阶段提交
- MVCC
-
共识协议
- Quorum NWR模型
- RAFT协议
- Paxos协议
三、课后个人总结:
接触过一部分知识,但有大部分都有点弄不懂
四、引用参考:
掘金录播课