栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 前沿技术 > 大数据 > 大数据系统

CAP理论为什么不能同时满足

CAP理论为什么不能同时满足

1. CAP理论介绍

CAP定理(CAP theorem):对于一个分布式计算系统来说,不可能同时满足以下三点:

一致性(Consistency) (等同于所有节点访问同一份最新的数据副本)可用性(Availability)(每次请求都能获取到非错的响应——但是不保证获取的数据为最新数据)分区容错性(Partition tolerance)(以实际效果而言,分区相当于对通信的时限要求。系统如果不能在时限内达成数据一致性,就意味着发生了分区的情况,必须就当前操作在C和A之间做出选择。分布式系统在遇到任何网络分区故障的时候,仍然需要能够保证对外提供满足一致性和可用性的服务,除非是整个网络环境都发生了故障。)

2. 为什么不能同时满足

对于CAP理论中,分布式系统要保障整体的服务,因此(Partition tolerance)分区容错性必然存在。那么为什么CA不能同时存在?因为分区之间的通信可能通信失败。

① 假设有两个数据分区DB1和DB2,存储着相同的一个数据,都是Version0。
② 有写请求进来,修改了DB1中的数据到Version1,正常情况下需要将修改同步到DB2,但是由于之间通信故障,DB2数据没能成功修改。
③ 当有读请求进来,请求DB1,返回正确数据Version1,请求DB2,由于数据没有成功修改,要么牺牲一致性,返回Version0,要么牺牲可用性,等故障恢复后再返回数据,阻塞掉请求。

因此,CAP理论中CA无法同时满足。那么可能存在两种情况:

CP without AAP without C 3. 要A还是要C

CP without A:
有些系统中一致性是本质要求,例如Redis分布式存储,ZooKeeper任何时候访问ZK都可以获得一致性的结果。极端情况下可能丢弃一些请求,从而保障一致性。

AP without C:
比如有的网页对一致性要求不是那么高,对商品价格进行更改,但是要保障用户仍然能顺利的访问网页。但是会在付款的时候对价格进行再次验证。


Ref:

    《CAP 定理的含义》阮一峰《CAP定理》维基百科
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/728730.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号