分布式系统那点事(CAP - BASE)

CAP理论指出分布式系统必须在一致性、可用性和分区容忍性之间做出选择。通常只能满足其中两者。而BASE理论则在CAP基础上,提出了基本可用、软状态和最终一致性,允许系统在异常情况下牺牲强一致性以保证可用性。分布式数据库如Redis和Zookeeper倾向于CP,而电商等场景更偏向于AP。
摘要由CSDN通过智能技术生成

CAP

C(Consistency):一致性。在同一时间点,各个节点的数据都是完全一致的。

A(Availability):可用性。即服务在正常的响应时间内对每个请求做出响应。

P(Partition-tolerance):分区容忍性。在分布式系统中,各个节点组成的网络应该是相互连通的,但是可能因为网络故障原因,导致节点间的网络被分割为多个网络分区,不同的网络分区之间是无法连通的,此时如果某个数据只在其中一个节点中保存,那么当网络分区出现后,与这个节点不连通的客户端就无法访问该数据了,此时分区是无法容忍的。

如何提高分区容忍性?一种方法就是将一份数据进行多次拷贝,存在不同的副本上,保证多个节点都存有该数据,那么当网络分区出现后,不同的网络分区都会存有该数据的副本,容忍性就提高了。

然而当把数据复制到多个节点后,与之带来的问题就是,多个节点的数据如何保证一致性呢?要么牺牲可用性保证一致性,要么牺牲一致性保证可用性。

为什么CAP只能三选二?

CA

对于有多个节点分布式系统中,P是必然存在的,如果只满足CA,那么只能是单机系统。对于关系型数据库,就是保证了CA,忽略了P,如果是数据库集群,一样会存在P的问题。

CP还是CA?

假设有两个节点n1和n2,数据data0存在两个节点上;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值