https://wenku.baidu.com/view/9f8d2cd9730abb68a98271fe910ef12d2af9a9e4.html

CAP理论

1、:CAP三个特性分别是什么

C:⼀致性:在分布式系统中的任意⼀个节点都会查询到相同的信息(拿到的都是最新的)
A:可⽤性:服务⼀直可⽤,⽽且是正常响应时间,好的可⽤性主要是指系统能够很好的为⽤户服务,不出现⽤户操作失败或者访问超时等
⽤户体验不好的情况。(只要我访问你就给我返回,如果要满⾜分布式(P),机器之间⽹络断掉的话,直接和C冲突)
P:分区容错性:当分布式系统中⼀部分节点崩溃的时候,当前系统仍旧能够正常对外提供服务(多台机器,分布式,不满⾜P就是单机
么)

2、为什么不能同时满⾜

image.png
在上⾯分布式系统中⼀共有6个节点可以对外提供服务,A⽤户和B⽤户分别向节点6和节点4请求服务。
当⽤户A通过节点6向系统中添加⼀个消息msg,在⽹络连接良好的情况下,这条消息很快就会保存到其他节点上,可是⽹络是⼀个不可靠的东西,假设现在节点4和其他节点的⽹络连接都断开了,那么msg这条消息就不会同步到节点4上,⽤户B仍旧向节点4请求查询msg,现在就有两种选择了:
1、保证可⽤性,⽤户B请求时⽴即返回得到的肯定时null,就⽆法满⾜⼀致性了
2、保证⼀致性,⽤户B请求时,会阻塞到节点4同步这条消息为⽌,⽆法满⾜可⽤性了
如果我们选择保证可⽤性和⼀致性,那么就是只有⼀个节点提供服务,不会产⽣其他⽹络连接,就不满⾜分区容错性了。

BASE理论

BASE理论是基于CAP理论逐步演化而来的,是CP(强一致性)和AP(强可用性)权衡的结果。
BASE理论的核心思想是:即使无法做到强一致性,但每个应用都可以根据自身业务特点采用适当的方式来使系统达到最终一致性
Basically Available(基本可用)
响应时间上的损失:正常情况下,处理用户请求需要0.5s返回结果,但是由于系统出现故障,处理用户请求的时间变成3s。
系统功能上的损失:正常情况下,用户可以使用系统的全部功能,但是由于系统访问量突然剧增,系统的非核心功能无法使用。
Soft state(软状态)
数据同步允许一定的延迟。
Eventually consistent(最终一致性)
系统中所有的数据副本,在经过一段时间的同步后,最终能够达到一个一致的状态,不要求实时。