CAP与BASE分布式理论

CAP理论

  • C:Consistency 一致性:指强一致性,分布式系统中的所有节点在同一时刻具有同样的值、都是最新的数据副本,一致性保证了不管向哪台服务器写入数据,其他的服务器能实时同步数据 强一致性:写入数据的时候,要不全部节点都写入成功,要不都写入失败(类似数据库的事务性)。读取数据的时候,从哪个节点上都读取到最新的值。即所有节点时刻保持一样的值。
  • A:Availability 可用性:部分节点宕机不影响整个集群对外提供服务,每次向未故障的节点发送请求,服务节点总能保证在有限的时间内处理完成并进行响应,从用户角度来看就是不会出现系统操作失败或者访问超时等问题,但是系统内部可能会出现网络延迟等问题 可用性:系统对外提供的服务一直处于可用的状态。用户每一次请求都能返回正确的结果。
  • P:Partition Tolerance 分区容错性:由于网络的问题错综复杂,如果某个节点因为网络等问题造成数据不一致,或者数据延迟很久才同步过来,虽然会影响部分节点数据的时效性,但是服务节点依然是可用的,分布式系统要能容忍这种情况的,也就是说,尽管网络上有部分消息丢失,但系统仍然可继续工作。 分区容错性:集群的节点之间会发生通信,由于网络原因,集群通信出现问题。此时系统仍然能对外提供服务

一个分布式系统无法同时满足这三个条件,只能满足两个。P是必须的,一般为CP和AP。

P必须:分布式系统必然有多个节点之间通信,网络通信不能保证100%正常,所以P是必须的。放弃P就变成了单机系统

CP:不保证一直对外提供服务。如zookeeper故障,在恢复阶段无法进行读写。

AP:节点之间短时间内存在数据差异。如redis集群发生网络故障,每个节点都能对外提供服务,但是数据不一致。

CAP之间的取舍不是针对一个系统。一个系统存在多种数据,针对不同数据使用CAP做出取舍。

选择CP或者AP,也不是完全放弃另一个。故障恢复后也要想办法恢复C或者A。

BASE理论

BASE 理论是指,Basically Available(基本可用)、Soft-state( 软状态)、Eventual Consistency(最终一致性),是基于CAP定理演化而来,是对CAP中一致性和可用性权衡的结果。

核心思想:即使无法做到强一致性,但每个业务根据自身的特点,采用适当的方式来使系统达到最终一致性。

  • 基本可用:分布式系统在出现故障的时候,允许损失部分可用性,保证核心可用。但不等价于不可用。比如:搜索引擎0.5秒返回查询结果,但由于故障,2秒响应查询结果;网页访问过大时,部分用户提供降级服务等。
  • 软状态:软状态是指允许系统存在中间状态,并且该中间状态不会影响系统整体可用性。即允许系统在不同节点间副本同步的时候存在延时。
  • 最终一致性:系统中的所有数据副本经过一定时间后,最终能够达到一致的状态,不需要实时保证系统数据的强一致性。最终一致性是弱一致性的一种特殊情况。

参考:

https://blog.csdn.net/sinat_34814635/article/details/138647619

相关推荐
heimeiyingwang3 小时前
【架构实战】分布式事务:从CAP定理到Seata实战,一文讲透跨服务数据一致性
分布式·架构
lakernote8 小时前
图解 Kafka Consumer 常用 API:poll、seek、pause、wakeup 到底在控制什么?
分布式·kafka·linq
数据库小学妹11 小时前
集群与分布式啥区别?从主从集群到分布式实战
分布式·分布式数据库·数据库架构·集群·分库分表·主从集群·集群与分布式
江畔柳前堤11 小时前
AgentScope 设计与原理全解:从消息原语到分布式智能体工程底座
大数据·人工智能·分布式·目标检测·机器学习·语言模型·架构
萧瑟余晖11 小时前
Java深入解析篇三十四之分布式事务
java·开发语言·分布式
零域码客12 小时前
Redis 双刃剑:缓存与分布式锁的本质区别
redis·分布式·缓存·并发控制·后端架构
hopsky13 小时前
kafka 对发送端的容错处理
数据库·分布式·kafka
ltl1 天前
3D 并行深度:数据 / 张量 / 流水 / 序列 / ZeRO
分布式
FserSuN1 天前
回顾Spark的概念与应用
大数据·分布式·spark
IT机器猫2 天前
RabbitMQ基础二
java·spring boot·分布式·spring cloud·log4j·rabbitmq·springamqp