分布式理论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


相关文章
|
NoSQL Oracle 关系型数据库
分布式事务Seata【二】CAP定理和Base定理
CAP原则又叫CAP定理,同时又被称作布鲁尔定理(Brewer's theorem)
180 0
分布式事务Seata【二】CAP定理和Base定理
|
8月前
|
算法
分布式系统中的那些一致性(CAP、BASE、2PC、3PC、Paxos、ZAB、Raft)
本文介绍 CAP、BASE理论的正确理解、Paxos 算法如何保证一致性及死循环问题、ZAB 协议中原子广播及崩溃恢复以及 Raft 算法的动态演示。
62 0
|
8月前
|
Nacos
【分布式】分布式基础 CAP理论 & BASE 理论
【分布式】分布式基础 CAP理论 & BASE 理论
61 0
|
9月前
|
算法
【分布式篇】什么是CAP定理?
【分布式篇】什么是CAP定理?
62 0
|
5月前
|
Oracle 关系型数据库 分布式数据库
分布式事务中的CAP和BASE理论详解
分布式事务中的CAP和BASE理论详解
97 0
|
6月前
|
Nacos
分布式理论:CAP理论 BASE理论
分布式理论:CAP理论 BASE理论
|
6月前
分布式CAP理论(英文版)
分布式CAP理论(英文版)
|
10月前
|
缓存 分布式计算 网络协议
分布式系统CAP定理中的P | 青训营笔记
分布式系统CAP定理中的P | 青训营笔记
82 0
|
10月前
|
消息中间件 缓存 负载均衡
分布式理论 - CAP
CAP理论是分布式系统理论中的重要理论之一,它指出在分布式系统中,一致性(Consistency)、可用性(Availability)和分区容错性(Partition tolerance)这三个要素不可能同时满足。CAP理论的核心思想是:在分布式系统中,当发生网络分区时,必须在一致性和可用性之间做出选择,从而保证分区容错性。具体来说,当发生网络分区时,系统必须要么保证所有节点的一致性,但会导致部分节点不可用,要么保证所有节点的可用性,但会导致节点之间的数据不一致。
267 0
分布式理论 - CAP
|
算法 安全 搜索推荐
常见分布式理论(CAP、BASE)和一致性协议(Gosssip协议、Raft一致性算法)
常见分布式理论(CAP、BASE)和一致性协议(Gosssip协议、Raft一致性算法)
147 0

热门文章

最新文章