初探CAP定理及其不可兼得性

一、对CAP定理的理解

CAP定理是分布式系统设计的核心理论。由Eric Brewer在2000年提出,后由Gilbert和Lynch在2002年严格证明。分别是指Consistency一致性,Aavailability可用性,Partition Tolerance分区容忍性。

  • Consistency一致性,是指数据在多个副本间是保持一致的。或者说节点在同一时间看到相同的数据,即强一致性。
  • Availability可用性,指每个请求都能得到非错的响应。非错是指不保证获得的数据是最新的。
  • Partition Tolerance是指当分布式系统出现网络分区时,仍然能提供对外服务。

二、为什么说CAP不可兼得?

Cap理论表示一个分布式系统不可能同时满足不能CAP三个条件。分布式系统一定要满足Partition Tolerance分区容忍性。如果不满足p,也就是不存在分区,那么就意味着要将所有的服务都放在一个服务器上,这时这个系统也不能称为分布式系统了。

C和A权衡和选择最主要看要达到什么样程度的一致性。

如果要达到强一致性,那么就必须满足C;如果要达到一般一致性,更多考虑可用性,那么就更多要考虑A。

而C和A是不可能同时共存的。如果要保证C强一致性,因为主节点与副本之间存在数据同步的过程,必然导致系统的阻塞,这时候的系统处于不可用的状态即不满足A。

如果要保证A可用性,则不允许系统存在阻塞的情况,此时会出现访问到旧数据的情况,即会导致短暂的不一致。

综合考虑下来。总共只有两种模型存在,即CP和AP。

相关推荐
Thanks_ks28 分钟前
深入理解一致性 Hash 算法:从理论到虚拟节点的工程实践
负载均衡·缓存雪崩·go语言·一致性hash·分布式系统·数据倾斜·虚拟节点
想你依然心痛14 天前
分布式嵌入式系统——多节点协同与一致性协议
raft算法·分布式系统·软总线·一致性协议·状态同步·多节点协同·嵌入式简化
折哥的程序人生 · 物流技术专研15 天前
Java面试通关⑭:分布式理论与架构全集
分布式·微服务·校招·分布式事务·cap·java面试·最终一致性
至乐活着16 天前
深入浅出CAP理论:从原理到实战,用Go实现一个最终一致性的分布式键值存储
go语言·分布式系统·实战教程·cap理论·最终一致性
byte轻骑兵1 个月前
【LE Audio】CAP缩略词一本通:54个核心术语解码,协议入门快车道
人机交互·cap·le audio·蓝牙音频·低功耗音频
byte轻骑兵2 个月前
【LE Audio】CAP精讲[13]: Central侧LE连接建立全流程解析
人工智能·音视频·cap·le audio·低功耗音频
byte轻骑兵2 个月前
【LE Audio】CAP精讲[12]: 从通告到连接,LE外设连接建立全流程拆解
人机交互·cap·le audio·蓝牙音频·低功耗音频
我心飞翔@坚持不懈2 个月前
高并发高可用电商平台交易架构实战(避坑)指南
高并发·架构设计·高可用·分布式系统·电商架构·架构避坑
better_liang2 个月前
每日Java面试场景题知识点之-数据库与缓存的一致性
java·数据库·redis·面试·分布式系统·缓存一致性·cache aside
一切皆是因缘际会2 个月前
从模型竞赛到全域智能的时代跃迁
人工智能·深度学习·ai·分布式系统