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

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

## 一、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