什么是 CAP 理论?
C:Consistency 一致性
A:Availability 可用性
P:Partition 分区容错性
对于理论计算机科学,CAP 定理指出,对于一个分布式系统而言,CAP 中的三个只能同时满足两个。
分区容错性:分布式系统出现网络分区的时候,仍然可以向外提供服务。
* 网络分区
分布式系统中,多个节点之间的网络本来是相连的。但现在因为某些原因,某些节点之间不再连通,网络会被分成多个区域,这就叫网络分区。
分布式系统无法选择 CA 架构,只能选择 CP 或者 AP 框架 —— 也就是要么选择高一致性,要么选择高可用性。
ZooKeeper 是 CP 架构;Eureka 是 AP 架构;Nacos 支持两者。
另外有一点需要补充说明:当 P 正常运作,也就是网络中没有产生分区的时候,C 和 A 是可以同时保证的。
什么是 Base 理论?
Base 理论起源于 2008 年,由 eBay 的架构师 Dan 在 ACM 上发表。
BASE 是
1、Basically Available 基本可用
2、Soft-State 软状态
3、Eventually Consistent 最终一致性
BASE 理论是对 CAP 理论中的 A 和 C 进行权衡的结果,是基于 CAP 定理逐步演化而来的,它降低了我们对系统的要求。即使我们的系统无法达到强一致性,但我们通过某种手段达到最终一致性即可。
也就是牺牲数据的强一致性来满足系统的高可用性,系统中一部分数据不一致的时候,依旧要保持系统的可用。
聊聊你对 Paxos 算法的了解?
Paxos 分布式系统共识算法
Basic Paxos:描述多个节点之间如何就某个值达成共识
Multi-Paxos:描述的是就一系列值达成共识,也就是多次执行 Basic Paxos。
Paxos 在国际上是公认的难实现,所以大家一直对它进行改进,于是有了 Raft 算法。
聊聊你对 Raft 算法的了解?
Raft 算法详解 | JavaGuide