初探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。

相关推荐
我不会起名字3221 天前
Redis 缓存与数据库一致性:先删缓存还是先更新库的 4 种方案
数据库·redis·缓存·一致性·延迟双删
一切皆是因缘际会3 天前
掌控信息论:同源星际通信基础理论 上
人工智能·ai·系统架构·分布式系统·信息论·星际通信·物理计算机
蒸鱼Yuzheng9 天前
自动化 Socket 协议设计:消息序列、心跳、幂等重试与背压
自动化测试·python·websocket·socket·分布式系统
ShineWinsu11 天前
对于Redis:Redis特性以及应用场景的解析
linux·c++·redis·缓存·高并发·分布式系统·key-value
九皇叔叔22 天前
Seata——把分布式事务理论落到 Java 微服务实践
分布式·分布式事务·cap·base·saga
九皇叔叔25 天前
从本地事务到分布式事务
java·分布式·分布式事务·cap·base
deepseek231 个月前
MCP 2026-07-28 Tasks扩展深度解析:从无状态协议到长时运行任务的架构演进
ai agent·分布式系统·协议设计·mcp·无状态协议·tasks扩展
m0_579146651 个月前
PostgreSQL+Milvus分层存储架构:双写一致性与CAP理论取舍分析
postgresql·架构·milvus·cap
ylj_dev1 个月前
从 0 构建 AI Workload Platform(八):受限执行环境与 Kubernetes
docker·容器·kubernetes·分布式系统·ai工作流·容器安全·ai infra
TunerT_TQ2 个月前
Valhalla 静态工程审阅 #007|AgentENV 源码证据驱动评测【大厂开源基础设施特辑】
rust·开源·go·github·sandbox·分布式系统·ai基础设施