聊一下分布式中的CAP定理

简介: CAP原则(定理)是由Eric Brewer在2000年PODC会议上提出。该猜想在提出两年后被证明成立,成为目前我们熟知的CAP定理。

话说分布式中的CAP定理,其实指的是在一个分布式系统中,一定会存在三个必要原则,那就是:

数据一致性:Consistency
服务可用性:Availability
分区容错性:Partition tolerance

但是这三者通常是不能兼得,目前的技术而言也是只去兼顾其中两种而已。


起源


CAP原则(定理)是由Eric Brewer在2000年PODC会议上提出。该猜想在提出两年后被证明成立,成为目前我们熟知的CAP定理。


解释


其实从字面意思就能看得出来,这三个原则是非常贴近我们实际情况的,也是我们在设计分布式时通常要考虑的问题,但是我们在这还是稍微再说一下。


数据一致性:Consistency


数据一致性,就是分布式系统在执行某项原子性操作后仍然处于一致的状态。

在分布式系统中,无论做了哪些操作后,客户端在任何一个分布式节点获取到的值均应相同,这个情况在分布式中被称为数据的一致性原则。

其优点就是不会存在数据不一致的风险,缺点也有,因为每次要将新修改的操作同步至各个节点,所以其效率会降低。但是在安全的角度出发,人们还是会去遵循数据一致性,相关效率的降低反而能够忍受。


服务可用性:Availability


服务可用性是指,每一个请求总是能够在一定的时间内返回结果,也就是说每个请求都要有响应,无论是失败还是成功。


分区容错性:Partition tolerance


分区容错性,指在系统无论发生信息丢失或者失败的情况下,仍然可以正常运作,并且对外提供响应的服务。


应用


目前没有办法全部实现,只能实现其中两点,要不就是实现AP,要不就是实现CP,我们平时使用的技术中:ZooKeeper和Euraka就是不同的方式。


ZooKeeper : CP


ZooKeeper本就是基于主从模型来实现的,在一定时间点内,只有一个主服务对外进行提供接口服务,其他如果出现问题,也会立时产生一个新的来继续服务。


Euraka :AP


Euraka就不同了,他是基于平等模型来实现的,没有主次之分。客户端访问时任意节点,都会给出响应,如果当前节点出现问题,这个请求也会转移给其他节点。

但是这种模式就没办法执行数据一致性了,一般都是通过其他方式去解决数据一致性的问题。


目录
相关文章
|
9月前
|
Java
JAVA 分布式事务 CAP 理论
【1月更文挑战第7天】JAVA 分布式事务 CAP 理论
|
4月前
|
缓存 Java 数据库
JAVA分布式CAP原则
JAVA分布式CAP原则
95 0
|
7月前
|
算法 前端开发
|
6月前
|
存储 NoSQL 关系型数据库
(二)漫谈分布式之理论篇:用刁钻的手法掰正你那学歪的CAP与BASE理论!
大多数讲分布式的资料、课程,虽然在一开始就会先讲述CAP理论,但大家仔细想想,你在做分布式项目时,落地过这个基础理论吗?相信包括我在内,以及90%以上的开发者,没有,至于为何,本文来从不一样的角度好好唠唠CAP,以及另一个著名的BASE理论~
120 0
|
7月前
|
缓存 搜索推荐 Java
Java面试题:简述CAP理论及其在分布式系统设计中的应用。请提供一个具体的例子,说明在系统设计中如何取舍一致性和可用性
Java面试题:简述CAP理论及其在分布式系统设计中的应用。请提供一个具体的例子,说明在系统设计中如何取舍一致性和可用性
76 0
|
9月前
|
消息中间件 缓存 算法
从ACID到BASE:分布式系统CAP理论深度解析
**CAP理论**是分布式系统设计的基础,指出一致性(Consistency)、可用性(Availability)和分区容忍性(Partition Tolerance)无法兼得。一致性确保所有节点数据相同,如ACID原则;可用性保证系统始终响应用户请求,常见优化包括BASE理论和多级缓存;分区容忍性则确保网络分区时仍能服务。设计时需根据业务需求权衡这三者。
160 4
|
8月前
|
缓存 NoSQL 数据库
分布式系统面试全集通第一篇(dubbo+redis+zookeeper----分布式+CAP+BASE+分布式事务+分布式锁)
分布式系统面试全集通第一篇(dubbo+redis+zookeeper----分布式+CAP+BASE+分布式事务+分布式锁)
130 0
|
8月前
|
存储 架构师 关系型数据库
分布式系统详解--基础知识(CAP)
分布式系统详解--基础知识(CAP)
128 0
|
9月前
|
Nacos
分布式理论:CAP理论 BASE理论
分布式理论:CAP理论 BASE理论
63 2
|
9月前
|
存储 消息中间件 关系型数据库
解密分布式事务:CAP理论、BASE理论、两阶段提交(2PC)、三阶段提交(3PC)、补偿事务(TCC)、MQ事务消息、最大努力通知
解密分布式事务:CAP理论、BASE理论、两阶段提交(2PC)、三阶段提交(3PC)、补偿事务(TCC)、MQ事务消息、最大努力通知
171 0