分布式理论

CAP和BASE

CAP

  • C一致性(Consistency)

在分布式环境下,一致性是指数据在多个副本之间能否保持一致性的特征。

在一致性的需求下,当一个系统在数据一致的状态下执行更新操作后,应该保证系统的数据仍然处于一致性的状态。

  • A可用性(Availability)

可用性是指系统提供的服务必须一直处于可用的状态,对于用户的每一个操作请求总是能够在有限的时间内返回结果

有限的时间:指尽可能短的时间内返回处理结果。

返回结果:指在有限的时间内返回正常的结果,不保证返回的是最新的结果。

  • P分区容错性(Partition)

如果是分布式系统,那么就会存在多个节点,就会存在节点故障或网络故障,所以P是不可避免的。

CAP不能同时满足:

分布式系统中,如果要保证C一致性,那么就要执行节点数据同步,同步就存在网络请求故障、逻辑执行耗时等问题,此时就不能保证节点的可用性了。如果要保证A可用性,系统尽可能的快,此时就不能保证网络请求一定成功、逻辑是否执行完成,此时就不能保证节点的一致性了。所以,在分布式系统中,只能同时满足AP或者CP。

BASE

  • BA(Basically Available)基本可用

牺牲高一致性,获得可用性和可靠性。

在分布式系统中出现不可预知故障时,允许损失部分可用性(注意,这里不等价于系统不可用)。

比如:

响应时间上的损失:系统故障时请求响应时间由原来的0.5s延长到1s,此时系统仍然可用。

系统功能上的缺失:在系统流量洪峰时为了保证核心功能稳定,将部分消费者引导到一个降级页面。

  • S(Soft state)软状态

软状态指允许系统中的数据存在中间状态,并认为该中间状态不会影响系统的整体可用性,即允许系统各节点数据同步存在延时。

  • E(Eventually consistent)最终一致性

系统各节点一定时间后数据最终达到一致状态。

BASE理论是对CAP中一致性和可用性权衡的结果,其来源于对大规模互联网系统分布式实践的总结,是基于CAP理论逐步演化而来的。

BASE理论和传统的事务ACID特性是相反的,它完全不同于ACID的强一致性模型,在实际的分布式场景中,不同业务和组件对数据一致性要求是不同的,因此在具体的分布式系统中BASE理论和ACID特性是结合一起使用的。

一致性分类

  • 强一致性

又称线性一致性。

任何时刻,任何用户或节点都可以读到最近一次成功更新的副本数据,强一致性是程度要求最高的一致性要求。

一个集群要对外提供强一致性,某一个节点数据发生改变,要等到最新数据同步到其他所有节点后,才能对外提供服务。

保证强一致性,务必不能满足可用性。

  • 弱一致性

一旦某个更新成功,用户无法在一个确定的时间内读到这次更新的值,且即使在某个副本上读到了新的值,也不能保证在其他副本上可以读到新的值。

  • 最终一致性

一旦数据更新成功,各个副本上的数据最终达到完全一致的状态,但达到完全一致状态所需要的时间不能保证。

  • 顺序一致性

任何一次读,都能读到某个数据的最近一次写的数据。

对其他节点之前的修改是可见(已同步)且确定的,并且新的写入建立在已经达成同步的基础上。

相关推荐
wWYy.1 小时前
基于Raft分布式Kv存储:AppendEntries
分布式
霸道流氓气质2 小时前
分布式系统中跨进程上下文传递方案
分布式
wWYy.2 小时前
基于Raft的分布式Kv存储项目:raft.h
开发语言·分布式·qt
wWYy.2 小时前
基于Raft分布式Kv存储:日志寻找匹配
分布式
ACP广源盛139246256733 小时前
YLB3118 存储桥接芯片完整机会点@ACP#联动曙光 8000
大数据·人工智能·分布式·单片机·嵌入式硬件
韩楚风19 小时前
【参天引擎】一次宕机后的数据恢复,让我把 Cantian 持久化与恢复的六大机制全搞明白了
服务器·网络·数据库·分布式·mysql·架构·cantian
AAA@峥1 天前
Ceph RBD 块存储全解析:原理与实操汇总
运维·分布式·ceph
LLL人无再少年1 天前
分布式链路追踪系统之二进制安装skywalking
分布式·skywalking
心念枕惊1 天前
分布式、服务化的ERP系统架构设计
分布式·系统架构
重庆小透明1 天前
分布式事务方案对比
分布式