让阿里P8都为之着迷的分布式核心原理解析到底讲了啥?看完我惊了

44 阅读7分钟

这个人人都喊着“高并发”“高可用”的时代里,分布式系统的重要性不言而喻。从整个行业的招聘趋势就能看出来,大型互联网公司在招聘后端工程师的时候,都会要求候选人有分布式相关的工作经验。与其直接用些抽象、晦涩的技术名词去给分布式下一个定义,还不如从理解分布式的发展驱动因素开始,我们一起去探寻它的本质,自然而然地也就清楚它的定义了。

在今天这篇文章中,我将带你了解分布式的起源,是如何从单台计算机发展到分布式的,进而帮助你深入理解什么是分布式。为了方便你更好地理解这个演进过程,我将不考虑多核、多处理器的情况,假定每台计算机都是单核、单处理器的+****XXX_WWW666666获取说明:完整的《分布式核心原理解析》学习文档篇幅较长,共有330页,这里限于篇幅,故只展示一部分的文档

前言

一,分布式何而起

分布式起源

  1. 单兵模式:单机模式
  2. 游击队模式:数据并行或数据分布式
  3. 集团军模式:任务并行或任务分布式
  4. 分布式是什么?
  5. 总结

二,分布式系统的指标

分布式系统的指标

  1. 性能(Per formance)
  2. 资源占用(Resource Usage)
  3. 可用性( Availability)
  4. 可扩展性(Sealabi1ity)
  5. 不同场景下分布式系统的指标
  6. 总结与思考

三,分布式协调与同步

分布式互斥

  1. 什么是分布式互斥?
  2. 霸道总裁:集中式算法
  3. 民主协商:分布式算法
  4. 轮值CE0:令牌环算法
  5. 总结

分布式选举

  1. 为什么要有分布式选举?

分布式选举的算法

  1. 长者为大: Bully 算法
  2. 民主投票: Raft 算法
  3. 具有优先级的民主投票: ZAB算法
  4. 三种选举算法的对比分析
  5. 总结

分布式共识

  1. 什么是分布式共识?

分布式共识方法

  1. PoW
  2. PoS
  3. DPoS
  4. 三种分布式共识算法对比分析

分布式事务

  1. 什么是分布式事务?
  2. 如何实现分布式事务?
  3. 基于XA协议的二阶段提交方法

三阶段提交方法

  1. 第一,CanCommit阶段
  2. 第二,FreCommit阶段
  3. 第三,DoCommit阶段
  4. 基于分布式消息的最终一致性方案
  5. 三种实现方式对比

分布式锁

  1. 为什么要使用分布锁?
  2. 分布式锁的三种实现方法及对比
  3. 基于缓存实现分布式锁
  4. 基于ZooKeeper实现分布式锁
  5. 三种实现方式对比

四,分布式技术是如何引爆人工智能的?

  1. 什么是人工智能?
  2. 数据处理
  3. 分布式模型训练
  4. 数据分布式训练
  5. 模型分布式训练
  6. 混合模型训练

分布式资源管理与负载调度

分布式体系结构一- 集中式结构

  1. 什么是集中式结构?

经典集中式结构

  1. Google Borg
  2. Kubernetes
  3. Mesos
  4. 分析对比

分布式体系结构一一非集中式结构

  1. 什么是非集中式结构?
  2. Akka集群
  3. Redis集群
  4. Cassandr s集群
  5. 对比分析

分布式调度架构一- -单体调度

  1. 什么是单体调度?
  2. 单体调度设计
  3. Bor e调度设计
  4. Bor g调度算法

分布式调度架构一-两层调度

  1. 什么是两层调度?
  2. 两层调度设计
  3. 资源分配算法

分布式调度架构一一共享状态调度

  1. 什么是共享状态调度?
  2. 共享状态调度设计
  3. 0mega调度架构
  4. 0mega共享调度工作原理

分布式事务与分布式锁相关问题

  1. 分布式事务的相关问题
  2. 分布式锁的相关问题

五,分布式计算技术

分布式计算模式- -MR

  1. 什么是分而治之?
  2. 分治法的原理
  3. 抽象模型
  4. MapReduce工作原理
  5. MapReduc e实践应用

分布式计算模式--Stream

  1. 什么是Stream?
  2. Stream工作原理
  3. Storm的工作原理

分布式计算模式- - - Aector

  1. 什么是Actor?
  2. Actor计算模式
  3. Actor工作原理
  4. Actor关键特征
  5. Actor模型的应用

分布式计算模式- - 流水线

  1. 什么是流水线模式?
  2. 流水线计算模式
  3. 流水线计算模式的原理
  4. 实践:构建机器学习流水线

六,分布式通信技术

分布式通信- - 远程调用

  1. 什么是远程调用?
  2. 远程调用的原理及应用
  3. RPC的原理及应用
  4. RMI的原理及应用
  5. RPC与MI对比分析

分布式通信一-发布订阅

  1. 什么是发布订阅?
  2. 发布订阅的原理及应用
  3. 发布订阅的基本工作原理
  4. Kafka发布订阅原理及工作机制
  5. 发布订阅实践应用

分布式通信- -消息队列

  1. 什么是消息队列?
  2. 消息队列的原理
  3. 消息队列工作原理
  4. Rocke tMQ消息队列原理及工作机制

分布式体系架构与分布式计算相关问题

  1. 分布式体系架构相关问题
  2. 分布计算技术相关问题

七,分布式数据存储

CAP理论

  1. 什么是CAP?

CAP选择策略及应用

  1. 保CA弃P
  2. 保CP弃A
  3. 保aP弃C

布式数据存储系统一一三要素

  1. 什么是分布式数据存储系统?

分布式数据存储系统三要素

  1. 生产和消费数据
  2. 确定数据位置
  3. 存储数据

数据分布方式一一哈希与一 致性哈希

  1. 数据分布设计原则
  2. 数据分布方法
  3. 哈希

分布式数据复制技术

  1. 什么是数据复制技术?
  2. 数据复制技术原理及应用
  3. 同步复制技术原理及应用
  4. 异步复制技术原理及应用
  5. 半同步复制技术原理及应用
  6. 三种数据复制技术对比

分布式数据一 缓存技术

  1. 什么是分布式缓存?
  2. 分布式缓存原理
  3. Redi s分布缓存原理
  4. Memcache d分布式缓存原理

八,分布式高可靠

分布式高可靠一-负载均衡

  1. 什么是负载均衡?
  2. 服务请求的负载均衡方法
  3. 轮询策略
  4. 随机策略
  5. 哈希和一致性哈希策略

分布式高可靠一- 流量控制

  1. 什么是流量控制?

分布式系统流量控制策略

  1. 漏桶策略
  2. 令牌桶策略
  3. 两种策略对比
  4. Sentine1流量控制工作原理

分布式高可用- -故障隔离

  1. 分布式高可用- -故障隔离
  2. 分布式故障隔离策略
  3. 线程级隔离
  4. 进程级隔离
  5. 资源隔离
  6. 故障隔离策略综合对比

分布式故障基础知识

  1. 故障类型
  2. 故障检测
  3. 故障恢复
  4. 分布式故障检测原理
  5. 故障恢复策略

如何判断并解决网络分区问题?

  1. 什么是网络分区?
  2. 如何判断是否发生了网络分区?
  3. 网络分区最微妙的地方在哪里?
  4. 网络分区出现概率较高的场景是什么?
  5. 网络分区有哪些常见的处理方法?

当下微服务架构越来越流行,分布式的处理成为项目中一个绕不过去的坎,在中高级开发的面试中,分布式也成了必选项,很多人在项目中忙于业务实现,忽略了或者没有机会对分布式进行了解。