Java 7.1 - 理论 & 算法 & 协议

什么是 CAP 理论?

C:Consistency 一致性

A:Availability 可用性

P:Partition 分区容错性

对于理论计算机科学,CAP 定理指出,对于一个分布式系统而言,CAP 中的三个只能同时满足两个。

分区容错性:分布式系统出现网络分区的时候,仍然可以向外提供服务。

* 网络分区

分布式系统中,多个节点之间的网络本来是相连的。但现在因为某些原因,某些节点之间不再连通,网络会被分成多个区域,这就叫网络分区。

Java 7.1 - 理论 & 算法 & 协议_第1张图片

 分布式系统无法选择 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

 

你可能感兴趣的:(java,开发语言)