分布式理论CAP定理

简介: 分布式理论CAP定理

CAP原则又称CAP定理,指的是在一个分布式系统中, Consistency(一致性)、 Availability(可用性)、Partition tolerance(分区容错性),三者不可兼得。


20200222144454379.png


998年,加州大学的计算机科学家 Eric Brewer 提出,分布式系统有三个指标:


Consistency(一致性): 所有的节点上的数据时刻保持同步,强一致性;

Availability(可用性): 每个请求都能接受到一个响应,无论返回的数据是否一致;

Partition tolerance(分区容错性): 系统应该能持续提供服务,即使在遇到某节点或网络分区故障的时候。

它们的第一个字母分别是 C、A、P。

Eric Brewer 说,这三个指标不可能同时做到。这个结论就叫做 CAP 定理。


下面分别讲述下这三个概念:


1.分区容错性

相对于单点系统,分布式系统会部署在多台机器上,机器之间有可能是跨区域的,比如服务器机房一个在北京,一个在上海,如果在这两个机房之间构建了分布式系统,那么这两个区域的机器是需要通信的,而只要通信就有可能出现通信失败,所以分区容错性P是我们在设计分布式系统中必须要考虑到的问题。


2.一致性

一致性是说客户端从分布式系统中拿数据,不管从那一台机器中获取,都应该是最新的。


20200222144012562.png



假设某一时间client向server1服务器更新vo->v1,之后不管从server1还是从server2取值都是v1,这样才满足一致性。而如果cleint往server1写过数据后,从server2中去获取值,此时server1和server2之间还未同步,那么就会依然获取到vo,那么就不满足一致性。


3.可用性

可用性是指,不管任何时候,client向任意一台server发起请求,都能得到响应,不管获得的数据是v0还是v1。


一致性和可用性之间的矛盾


因为分区容错P的必然性,所以一致性C和可用性A无法同时成立。


20200222144110572.png


如果保证 Server2的一致性,那么 Server1 必须在写操作时,锁定 Server2 的读操作和写操作。只有数据同步后,才能重新开放读写。锁定期间,Server2 不能读写,这样可用性就无法满足。


如果保证 Server2 的可用性,那么就不能锁定 Server2,所以一致性不成立。


综上所述,Server2 无法同时做到一致性和可用性。系统设计时只能选择一个目标。如果追求强一致性,那么无法保证所有节点的可用性;如果追求所有节点的可用性,那就没法做到强一致性。

20200222144508730.png


目录
打赏
0
0
0
0
12
分享
相关文章
JAVA 分布式事务 CAP 理论
【1月更文挑战第7天】JAVA 分布式事务 CAP 理论
JAVA分布式CAP原则
JAVA分布式CAP原则
111 0
(二)漫谈分布式之理论篇:用刁钻的手法掰正你那学歪的CAP与BASE理论!
大多数讲分布式的资料、课程,虽然在一开始就会先讲述CAP理论,但大家仔细想想,你在做分布式项目时,落地过这个基础理论吗?相信包括我在内,以及90%以上的开发者,没有,至于为何,本文来从不一样的角度好好唠唠CAP,以及另一个著名的BASE理论~
151 0
Java面试题:简述CAP理论及其在分布式系统设计中的应用。请提供一个具体的例子,说明在系统设计中如何取舍一致性和可用性
Java面试题:简述CAP理论及其在分布式系统设计中的应用。请提供一个具体的例子,说明在系统设计中如何取舍一致性和可用性
90 0
从ACID到BASE:分布式系统CAP理论深度解析
**CAP理论**是分布式系统设计的基础,指出一致性(Consistency)、可用性(Availability)和分区容忍性(Partition Tolerance)无法兼得。一致性确保所有节点数据相同,如ACID原则;可用性保证系统始终响应用户请求,常见优化包括BASE理论和多级缓存;分区容忍性则确保网络分区时仍能服务。设计时需根据业务需求权衡这三者。
175 4
分布式系统面试全集通第一篇(dubbo+redis+zookeeper----分布式+CAP+BASE+分布式事务+分布式锁)
分布式系统面试全集通第一篇(dubbo+redis+zookeeper----分布式+CAP+BASE+分布式事务+分布式锁)
148 0
分布式系统详解--基础知识(CAP)
分布式系统详解--基础知识(CAP)
162 0
|
11月前
|
分布式理论:CAP理论 BASE理论
分布式理论:CAP理论 BASE理论
78 2
分布式系统中的那些一致性(CAP、BASE、2PC、3PC、Paxos、ZAB、Raft)
本文介绍 CAP、BASE理论的正确理解、Paxos 算法如何保证一致性及死循环问题、ZAB 协议中原子广播及崩溃恢复以及 Raft 算法的动态演示。
414 0

热门文章

最新文章

AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等