这是我参与「第五届青训营」伴学笔记创作活动的第 15 天
分布式理论
什么是分布式
分布式系统是计算机程序的集合,这些程序利用跨多个独立计算节点的计算资源来实现共同的目标。可以分为分布式计算、分布式存储、分布式数据库等。
优势:
- 去中心化
- 低成本
- 弹性
- 资源共享
- 可靠性高
挑战:
- 普遍的节点故障
- 不可靠的网络
- 异构的机器与硬件环境
- 安全
Why-How-What
使用者视角
| Why | How | What |
|---|---|---|
| 1.数据爆炸,对存储和计算有大规模运用的述求 | 1.分布式框架 | 1.理清规模、负载、一致性要求等 |
| 2. 成本低,构建在廉价服务器之上 | 2.成熟的分布式系统 | 2.明确稳定性要求,制定技术方案 |
| 学习者视角 | ||
| Why | How | What |
| --- | --- | --- |
| 1.后端开发必备技能 | 1.掌握分布式理论 | 1.把要点深入展开,针对难点搜索互联网资料进行学习 |
| 2. 帮助理解后台服务器之间协作的机理 | 2.了解一致性协议 | 2.将所学知识运用于实践 |
常见的分布式系统
分布式存储
- Google File System(GFS):google分布式文件系统
- Ceph:统一的分布式存储系统
- Hadoop HDFS:基于GFS架构的开源分布式文件系统
- Zookeeper:高可用的分布式数据管理与系统协调框架
分布式数据库
- Google Spanner:google可扩展的、全球分布式的数据库
- TiDB:开源分布式关系型数据库
- HBase:开源Nosql数据库
- MongoDB:文档数据库
分布式计算
- Hadoop:基于MapReduce分布式计算框架
- Spark:在Hadoop基础之上,使用内存来存储数据
- YARN:分布式资源调度
故障模型
- Byzantine failure:节点可以任意篡改发送给其他节点的数据
- Authentication detectable byzantine failure(ADB):前者的特例;节点可以篡改数据,但不能伪造其他节点的数据
- Performance failure:节点未在特定时间段收到数据,即时间太早或太晚
- Omission failure:节点收到数据的时间无限晚,即收不到数据
- Crash failure:在Omission failure的基础上,增加了节点停止响应的假设,也即持续性地Omission failure
- Fail-stop failure:在Crash failure的基础上增加了错误可检测的假设