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

相关推荐
西***63472 天前
讯维分布式输入输出节点:构建音视频智慧空间的神经末梢
ai·分布式系统·分布式输入输出节点
下次再写6 天前
深入浅出微服务架构:从理论到Spring Boot实战
java·微服务·springboot·springcloud·架构设计·后端开发·分布式系统
下次再写7 天前
微服务架构实战:Spring Boot + Spring Cloud 从入门到精通
java·spring boot·spring cloud·微服务架构·服务注册与发现·分布式系统·api网关
Thanks_ks17 天前
穿透海量数据的迷雾:深入理解布隆过滤器的架构哲学与工程权衡
redis·高并发·缓存穿透·架构设计·布隆过滤器·分布式系统·海量数据
Thanks_ks18 天前
分布式系统中的并发控制与分布式锁机制深度剖析
redis·zookeeper·高并发·分布式锁·架构设计·并发控制·分布式系统
切糕师学AI1 个月前
深入理解 CAP 定理:分布式系统中的一致性、可用性与分区容错
分布式·cap
阿钱真强道1 个月前
10 ComfyUI IPAdapter 实战:上传一张参考图,轻松实现人物一致性控制
aigc·sdxl·stable-diffusion·一致性·comfyui·ipadapter·人物生成
cy4130261 个月前
内存一致性(玄铁Rxxx和A55)和一致性总线(ACE)
一致性·ace
cookies_s_s1 个月前
从零实现 SPSC 无锁队列
c++·cap
s1mple“”1 个月前
互联网大厂Java面试实录:谢飞机的AIGC求职之旅 - JVM并发编程到Spring Cloud微服务
spring boot·aigc·微服务架构·java面试·分布式系统·rag技术·redis数据库