分布式原理
本文最后更新于 2023-10-11,文章内容可能已经过时。
分布式原理
1.目录:
2.分布式概述:
在多台服务器上运行同一个系统的的能力。
2.1 why-how-what:
2.2 常见的分布式系统:
3.系统概述:
3.1 故障模型:
按照处理的难易程度划分,最难处理的是拜占庭故障。
从四个角度去衡量故障:时间,正确性,状态,原因。
crash 只知道状态,而不知道原因。
fail-stop 既知道状态,也知道原因。
per,omiss不知道状态。
拜占庭是正确性问题。大部分分布式系统一般不解决此问题,因为太难解决了。
3.2 拜占庭将军问题:
在这种场景下,需要进行两轮投票,第一轮由ABC 把自己的的结果发送给D,由d整合结果之后再发给ABC,然后ABC再次像没有D的时候的三将军一样进行投票。
第二轮投票的决策依赖于第一轮D的消息。因为d只能传输01两种消息,所以必然能保证符合大多数人的意愿(ABC之间消息传输正确)
3.3 共识和一致性:
线性一致性又叫做强一致.
3.4 时间和时间顺序:
4.理论基础:
4.1 CAP理论:
完全的CAP无法达到。
4.2 ACID理论:
数据库一定要保证的是A和C,I和D有些时候并不能保证。
4.3 BASE理论:
5.分布式事务:
5.1 两阶段提交:
5.1.1 可能的异常:
在第二种情况中,查询状态通过participate.
5.1.2 注意的问题:
5.2 三阶段提交:
解决了在commit的时候失败,导致prepare资源浪费的问题.
5.3 悲观锁与乐观锁:
5.4 MVCC:
需要依赖硬件.
6.共识协议:
6.1: NWR模型:
强一致:能够通过读数据,发现数据被改变.
6.2 RAFT协议:
6.3 Paxos协议:
7.分布式实践:
7.1 Map Reduce:
7.2 分布式K-V:
Raft有很多的开源实现.
8.总结:
主要是后三个.
评论
匿名评论
隐私政策
你无需删除空行,直接评论以获取最佳展示效果