You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

30 lines
2.4 KiB

## 一、CAP
### 1.概念
**CAP定理CAP theorem**又被称作`布鲁尔定理(Brewer's theorem)`是回加州大学伯克得分校的计算机科学家埃里克·布鲁尔Eric Brewer在2000年的ACM PODC上提出的一个猜想。2002 年麻省理工学院的赛斯·吉尔伯特Seth Gilbert和南希·林奇Nancy Lynch发表了布鲁尔猜想的证明使之成为分布式计算领域公认的一个定理**。
| ITEM | CONTENT | DESC |
| ---- | ---------- | ---------------------------------------------------------------- |
| C | 一致性 | 对某个指定的客户端来说,读操作保证能够返回最新的写操作结果 |
| A | 可用性 | 非故障的节点在合理的时间内返回合理的响应(不是错误和超时的响应) |
| P | 分区容错性 | 当出现网络分区后,系统能够继续履行职责 |
**在一个分布式系统(指互相连接并共享数据节点的集合)中,当涉及读写操作时,只能保证`一致性Consistence`、`可用性Availability`、`分区容错性Partition Tolerance`三者中的两个,另外一个必须被牺牲。
#### 1.1 CP
如图1-1所示为了保证一致性当发生分区现象后N1节点上的数据已经更新到y但由于N1和N2之间的复制通道中断数据y无法同步到N2N2节点上的数据还是x。
这时客户端C访问N2时N2需要返回Error提示客户端面C“系统现在发生错误”这种处理方式违背了可用性Availability的要求因此CAP三者只能满足CP。
![[Pasted image 20231022162827.png]]
#### 1.2 AP
如图1-2所示为了保证可用性当发生分区现象后N1节点上的数据已经更新到y但由于N1和N2之间的复制通道中断数据y无法同步到N2N2节点上的数据还是x。
这时客户C访问N2时N2将当前自己拥有的数据x返回给客户端C了而实际上当前最新的数据已经是y了这就不满足一致性Consistency的要求了因此CAP三者只能满足AP。
`注意:`这里N2节点返回的x虽然不是一个“正确”的结果但是一个“合理”的结果因为x是旧的数据并不是一个错乱的值只是不是最新的数据而已。
![[Pasted image 20231022163757.png]]
### 2.在HDFS和Kafka中CAP的体现
## 二、BASE
## 三、ACID