目录
一. 分布式架构介绍
(一)什么是分布式系统
(二)分布式与集群的区别
集群: 多个服务器做同一个事情
分布式: 多个服务器做不同的事情
(三)分布式系统特性
(四)分布式系统面临的问题
二.分布式理论
(一)数据一致性
1.什么是分布式数据一致性
2. 副本一致性
3. 一致性分类
(二)CAP定理
1.CAP定理介绍
2. CAP三者不可能同时满足论证
3. CAP三者如何权衡
(三)BASE理论
三. 分布式一致性协议
(一)两阶段提交协议(2PC)
1.两阶段提交协议
2.2PC执行流程
3. 2PC 优点缺点
(二)三阶段提交协议(3PC)
三阶段提交协议出现背景:一致性协议中设计出了二阶段提交协议(
2PC
),但是
2PC
设计中还存
在缺陷,于是就有了三阶段提交协议,这便是
3PC
的诞生背景。
1.三阶段提交协议
2. 三个阶段详解
3. 2PC对比3PC
(三)NWR协议
1.什么是NWR协议
2. 原理
(四)Gossip 协议
1.什么是Gossip 协议
2. Gossip原理
3. 通信方式
4. 优缺点
(五)Paxos协议
1. 什么是Paxos
2. Paxos 解决了什么问题
3. Basic Paxos相关概念
4. Basic Paxos流程图
针对活锁问题解决起来非常简单
:
只需要在每个
Proposer
再去提案的时候随机加上一个等待时间即
可
5. Multi-Paxos流程图
6. Multi-Paxos角色重叠流程图
(六)Raft协议
1. 什么是Raft协议
2. Raft相关概念
3. 竞选阶段流程
这个是
Raft
完整版
http://thesecretlivesofdata.com/raft/
动画演示
github
也提供一个
https://raft.github.io/
动画演示地址
.
原理都是一样的
.
我们使用了3个不同的圆圈表示三种不同的状态
4. Leader节点宕机
5. 多个 Candidate 竞选
6. 日志复制
7. 网络分区
8. 网络分区情况日志复制
(七)Lease机制
1. 什么是Lease机制
2. Lease机制解决了什么问题
分布式系统中,如何确认一个节点是否工作正常?如果有
5
副本
1-5
。其中
1
号为主副本。
2. Lease的原理
3. lease的容错
4. 应用
四. 分布式系统设计策略
(一)心跳检测
(二)高可用
1. 高可用HA设计
2. 高可用HA下"脑裂问题"
(三)容错性
(四)负载均衡
五. 分布式架构服务调用
(一)服务调用
(二)实现方式
1. HTTP 应用协议的通信框架
2. RPC 框架
(三)跨域调用
1. 跨域
2. 常见的解决方案
六. 分布式服务治理
(一)服务协调
(二)服务削峰
1. 为什么要削峰
2. 流量削峰方案
(三)服务降级
1. 什么是服务降级
2. 降级策略
3. 分级降级
(四)服务限流
1. 什么是服务限流
2. 多维度限流
3. 限流算法
(五)服务熔断
1. 什么是服务熔断
像这种调用链路的连锁故障,叫做雪崩。
2.熔断机制
在这种时候,就需要我们的熔断机制来挽救整个系统。
3. 熔断机制实现
(六)服务链路追踪
1. 什么是链路追踪
2. 链路跟踪具备的功能
通过可视化分布式系统的模块和他们之间的相互联系来理解系统拓扑。点击某个节点会展示这个
模块的详情,比如它当前的状态和请求数量。
3. 链路跟踪设计原则
4. 链路跟踪Trace模型
七. 架构设计基本原则
(一)开闭原则
1. 开闭原则的定义
2. 开闭原则的作用
3. 开闭原则的实现方法
(二)单一职责原则
1. 单一职责原则的定义
2. 单一职责原则的优点
3. 单一职责原则的实现方法
(三)接口隔离原则
1. 接口隔离原则的定义
2. 接口隔离原则的优点
3. 接口隔离原则的实现方法
(四)里氏替换原则
1.里氏替换原则的定义
2. 里氏替换原则的作用
3. 里氏替换原则的实现方法
(五)依赖倒置原则
1. 依赖倒置原则定义
2. 依赖倒置原则的作用
3. 依赖倒置原则的实现方法
(六)迪米特法则
1.迪米特法则的定义
2. 迪米特法则的优点
3. 迪米特法则的实现方法
(七)合成复用原则
1. 合成复用原则的定义
2. 合成复用原则的重要性
3. 合成复用原则的实现方法