这个人人都喊着“高并发”“高可用”的时代里,分布式系统的重要性不言而喻。从整个行业的招聘趋势就能看出来,大型互联网公司在招聘后端工程师的时候,都会要求候选人有分布式相关的工作经验。与其直接用些抽象、晦涩的技术名词去给分布式下一个定义,还不如从理解分布式的发展驱动因素开始,我们一起去探寻它的本质,自然而然地也就清楚它的定义了。
在今天这篇文章中,我将带你了解分布式的起源,是如何从单台计算机发展到分布式的,进而帮助你深入理解什么是分布式。为了方便你更好地理解这个演进过程,我将不考虑多核、多处理器的情况,假定每台计算机都是单核、单处理器的。
说明:完整的《分布式核心原理解析》学习文档篇幅较长,共有330页,这里限于篇幅,故只展示一部分的文档。
前言
一,分布式何而起
分布式起源
- 单兵模式:单机模式
- 游击队模式:数据并行或数据分布式
- 集团军模式:任务并行或任务分布式
- 分布式是什么?
- 总结
二,分布式系统的指标
分布式系统的指标
- 性能(Per formance)
- 资源占用(Resource Usage)
- 可用性( Availability)
- 可扩展性(Sealabi1ity)
- 不同场景下分布式系统的指标
- 总结与思考
三,分布式协调与同步
分布式互斥
- 什么是分布式互斥?
- 霸道总裁:集中式算法
- 民主协商:分布式算法
- 轮值CE0:令牌环算法
- 总结
分布式选举
- 为什么要有分布式选举?
分布式选举的算法
- 长者为大: Bully 算法
- 民主投票: Raft 算法
- 具有优先级的民主投票: ZAB算法
- 三种选举算法的对比分析
- 总结
分布式共识
- 什么是分布式共识?
分布式共识方法
- PoW
- PoS
- DPoS
- 三种分布式共识算法对比分析
分布式事务
- 什么是分布式事务?
- 如何实现分布式事务?
- 基于XA协议的二阶段提交方法
三阶段提交方法
- 第一,CanCommit阶段
- 第二,FreCommit阶段
- 第三,DoCommit阶段
- 基于分布式消息的最终一致性方案
- 三种实现方式对比
分布式锁
- 为什么要使用分布锁?
- 分布式锁的三种实现方法及对比
- 基于缓存实现分布式锁
- 基于ZooKeeper实现分布式锁
- 三种实现方式对比
四,分布式技术是如何引爆人工智能的?
- 什么是人工智能?
- 数据处理
- 分布式模型训练
- 数据分布式训练
- 模型分布式训练
- 混合模型训练
分布式资源管理与负载调度
分布式体系结构一- 集中式结构
- 什么是集中式结构?
经典集中式结构
- Google Borg
- Kubernetes
- Mesos
- 分析对比
分布式体系结构一一非集中式结构
- 什么是非集中式结构?
- Akka集群
- Redis集群
- Cassandr s集群
- 对比分析
分布式调度架构一- -单体调度
- 什么是单体调度?
- 单体调度设计
- Bor e调度设计
- Bor g调度算法
分布式调度架构一-两层调度
- 什么是两层调度?
- 两层调度设计
- 资源分配算法
分布式调度架构一一共享状态调度
- 什么是共享状态调度?
- 共享状态调度设计
- 0mega调度架构
- 0mega共享调度工作原理
分布式事务与分布式锁相关问题
- 分布式事务的相关问题
- 分布式锁的相关问题
五,分布式计算技术
分布式计算模式- -MR
- 什么是分而治之?
- 分治法的原理
- 抽象模型
- MapReduce工作原理
- MapReduc e实践应用
分布式计算模式--Stream
- 什么是Stream?
- Stream工作原理
- Storm的工作原理
分布式计算模式- - - Aector
- 什么是Actor?
- Actor计算模式
- Actor工作原理
- Actor关键特征
- Actor模型的应用
分布式计算模式- - 流水线
- 什么是流水线模式?
- 流水线计算模式
- 流水线计算模式的原理
- 实践:构建机器学习流水线
六,分布式通信技术
分布式通信- - 远程调用
- 什么是远程调用?
- 远程调用的原理及应用
- RPC的原理及应用
- RMI的原理及应用
- RPC与MI对比分析
分布式通信一-发布订阅
- 什么是发布订阅?
- 发布订阅的原理及应用
- 发布订阅的基本工作原理
- Kafka发布订阅原理及工作机制
- 发布订阅实践应用
分布式通信- -消息队列
- 什么是消息队列?
- 消息队列的原理
- 消息队列工作原理
- Rocke tMQ消息队列原理及工作机制
分布式体系架构与分布式计算相关问题
- 分布式体系架构相关问题
- 分布计算技术相关问题
七,分布式数据存储
CAP理论
- 什么是CAP?
CAP选择策略及应用
- 保CA弃P
- 保CP弃A
- 保aP弃C
布式数据存储系统一一三要素
- 什么是分布式数据存储系统?
分布式数据存储系统三要素
- 生产和消费数据
- 确定数据位置
- 存储数据
数据分布方式一一哈希与一 致性哈希
- 数据分布设计原则
- 数据分布方法
- 哈希
分布式数据复制技术
- 什么是数据复制技术?
- 数据复制技术原理及应用
- 同步复制技术原理及应用
- 异步复制技术原理及应用
- 半同步复制技术原理及应用
- 三种数据复制技术对比
分布式数据一 缓存技术
- 什么是分布式缓存?
- 分布式缓存原理
- Redi s分布缓存原理
- Memcache d分布式缓存原理
八,分布式高可靠
分布式高可靠一-负载均衡
- 什么是负载均衡?
- 服务请求的负载均衡方法
- 轮询策略
- 随机策略
- 哈希和一致性哈希策略
分布式高可靠一- 流量控制
- 什么是流量控制?
分布式系统流量控制策略
- 漏桶策略
- 令牌桶策略
- 两种策略对比
- Sentine1流量控制工作原理
分布式高可用- -故障隔离
- 分布式高可用- -故障隔离
- 分布式故障隔离策略
- 线程级隔离
- 进程级隔离
- 资源隔离
- 故障隔离策略综合对比
分布式故障基础知识
- 故障类型
- 故障检测
- 故障恢复
- 分布式故障检测原理
- 故障恢复策略
如何判断并解决网络分区问题?
- 什么是网络分区?
- 如何判断是否发生了网络分区?
- 网络分区最微妙的地方在哪里?
- 网络分区出现概率较高的场景是什么?
- 网络分区有哪些常见的处理方法?
当下微服务架构越来越流行,分布式的处理成为项目中一个绕不过去的坎,在中高级开发的面试中,分布式也成了必选项,很多人在项目中忙于业务实现,忽略了或者没有机会对分布式进行了解。