CAP 理论

简介: CAP 理论

CAP 理论


CAP 是反应了分布式系统中的三个指标:Consistency (一致性), Availlability (可用性)Partion Tolerance(分区容错性)。

CAP 理论的核心是说 ,C、A 、P 这三个指标不能同时做到。

image.png

Consistency(一致性)


指数据在多个副本之间能够保持一致的特性(严格的一致性)


Availability(可用性)


指系统提供的服务必须一直处于可用的状态,每次请求都能获取到非错的响应(不保证获取的数据为最新数据)


Partition tolerance(分区容错性)


分布式系统在遇到任何网络分区故障的时候,仍然能够对外提供满足一致性和可用性的服务,除非整个网络环境都发生了故障


为啥不能同时满足?


比如说 G1 G2 两台跨区服务器。G1 向  G2 发送一条消息,G2 是收不到的,这样分区问题就必须考虑, 也就是分区容错性。一般来说 P(分区容错是要成立的)。剩下的C 与 A 是无法同时满足的。

image.png

G1 G2 服务器开始都是 v0 但是对 G1 进行了写操作,记录变成了 v1 。

image.png

image.png

用户向 G1 发起读操作,返回v1; G2 返回的是 v0 这样就不一致了。

image.png

为了数据一致性,也就是为了让 G2 也变成为 v1,就要在 G1 写操作的时候, 让 G1 向 G2 发送一条消息,要求 G2 改成 v1。这样下次读的时候,读到的就是 v1。

但是要注意的是,在 G1 向 G2 的同步过程中, G2 是不可用的,只有等数据同步完之后,才放开读写,这样才能保证一致性。否则在同步过程中,放开读写,这样数据就不一致了。

BASE 理论


Base 理论,也叫做基本可用,是采用合适的方式达到最终一致性(Eventual Consitency)。

  • (Basically Available) 基本可用

分布式系统出现故障的时候,允许损失部分可用性,保证核心可用。

  • Soft State(软状态)

接受一段时间的状态不同步,与中介状态,而改中间状态不影响整体的可用性。这里中间状态就是 CAP 理论中的数据不一致。

  • Eventually Consistent 最终一致性

不可能一直都是软状态,必须有个时间期限,数据最终一定能达到一致的状态,一次所有客户端对系统的数据访问最终都能够获取最新的值。


参考资料



相关文章
|
5天前
|
Nacos
分布式理论:CAP理论 BASE理论
分布式理论:CAP理论 BASE理论
13 2
|
10月前
|
算法 关系型数据库 UED
|
10月前
什么是CAP理论?
什么是CAP理论?
83 0
|
10月前
|
Java 关系型数据库 大数据
简述 CAP 定理【重要】
简述 CAP 定理【重要】
49 0
|
11月前
分布式理论CAP定理
分布式理论CAP定理
|
11月前
|
消息中间件 缓存 负载均衡
分布式理论 - CAP
CAP理论是分布式系统理论中的重要理论之一,它指出在分布式系统中,一致性(Consistency)、可用性(Availability)和分区容错性(Partition tolerance)这三个要素不可能同时满足。CAP理论的核心思想是:在分布式系统中,当发生网络分区时,必须在一致性和可用性之间做出选择,从而保证分区容错性。具体来说,当发生网络分区时,系统必须要么保证所有节点的一致性,但会导致部分节点不可用,要么保证所有节点的可用性,但会导致节点之间的数据不一致。
270 0
分布式理论 - CAP
|
搜索推荐 NoSQL 关系型数据库
分布式CAP理论和BASE理论
对于分布式系统的项目,使用中没有强制要求一定是CAP中要达到某几种,具体根据各自业务场景所需来制定相应的策略而选择适合的产品服务等。例如:支付订单场景中,由于分布式本身就在数据一致性上面很难保证,从A服务到B服务的订单数据有可能由于服务宕机或其他原因而造成数据不一致性。因此此类场景会酌情考虑:AP,不强制保证数据一致性,但保证数据最终一致性。
156 0
分布式CAP理论和BASE理论
|
存储 算法 关系型数据库
分布式学习二:CAP定理
分布式学习二:CAP定理
126 0
|
Go 数据库
对CAP理论的理解
对CAP理论的理解
127 0
对CAP理论的理解
|
分布式计算 Dubbo NoSQL