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

相关推荐
Java 码思客5 小时前
【Redis分布式缓存实战】第4章 单机Redis部署、配置与基础优化
redis·分布式·缓存
卷毛迷你猪5 小时前
快速实验篇(A3)基于 Hive 的气象数据数仓构建与干旱指标初步分析
大数据·hadoop·分布式
卷毛迷你猪5 小时前
快速实验篇(A4)Hive 数据仓库进阶:全站点干旱事件识别与多维统计分析
数据仓库·hive·hadoop·分布式
RingWu6 小时前
高并发三板斧-异步
分布式·微服务·架构
搞科研的小刘选手15 小时前
【中山大学主办】第六届计算机科学与区块链国际学术会议(CCSB 2026)
分布式·神经网络·计算机视觉·区块链·计算机科学·共识算法·自然语言
小饼干在学嘎瓦17 小时前
本地缓存和分布式缓存如何选择?
分布式·缓存
XLYcmy18 小时前
全链路验证测试系统:一个针对智能代理(Agent)系统全链路能力的自动化验证脚本
分布式·python·http·网络安全·ai·llm·agent
phltxy1 天前
HAProxy安装与RabbitMQ负载均衡配置
分布式·rabbitmq·负载均衡
jiayong231 天前
Kafka 高吞吐消息链路常见面试问题及详细解答
分布式·面试·kafka
卷毛迷你猪1 天前
快速实验篇(A2-2)数据清洗规则修正与多语言实现验证
hadoop·分布式