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

相关推荐
KIDAKN3 分钟前
RabbitMQ 初步认识
分布式·rabbitmq
pan3035074797 分钟前
Kafka 和 RabbitMQ的选择
分布式·kafka·rabbitmq
hzulwy3 小时前
Kafka基础理论
分布式·kafka
明达智控技术4 小时前
MR30分布式IO在全自动中药煎药机中的应用
分布式·物联网·自动化
jakeswang5 小时前
细说分布式ID
分布式
失散136 小时前
分布式专题——1.2 Redis7核心数据结构
java·数据结构·redis·分布式·架构
王中阳Go7 小时前
头一次见问这么多kafka的问题
分布式·kafka
boonya8 小时前
Kafka核心原理与常见面试问题解析
分布式·面试·kafka
KIDAKN9 小时前
RabbitMQ 重试机制 和 TTL
分布式·rabbitmq
JAVA学习通10 小时前
【RabbitMQ】----初识 RabbitMQ
分布式·rabbitmq