分布式理论之CAP和BASE

1、CAP理论

CAP理论是分布式系统的基础理论。要理解这个理论,首先要弄明白C、A、P的含义。

①C——一致性(Consistency)

一致性指的是数据在多个副本之间保持一致的特性。如果数据更新以后,访问任何一个副本得到的数据都是更新后的数据,那么这个系统就处于一致的状态。
假如我们有一个源端数据库,还有一台备份机对源端进行实时备份,如图:
在这里插入图片描述
此时控制机向源端发出修改Name属性的请求,随后客户端分别向源端和备端请求Name属性的值。满足一致性特性的分布式系统如图所示:
在这里插入图片描述
如果一个分布式系统不满足一致性特性,就可能发生以下情况:
在这里插入图片描述

②A——可用性(Availability)

可用性是指每次请求都能获取到正确的响应,但是不保证获取的数据为最新数据。在上面的第二种情况中,这个系统虽然不符合一致性特性,但是是可用的,也就是进行了正确的读写操作。

③P——分区容错性(Partition Tolerance)

分布式系统在遇到任何网络分区故障的时候,仍然需要能够保证对外提供满足一致性和可用性的服务,除非是整个网络环境都发生了故障。也就是说,如果分布式系统的部分故障不影响系统整体的正常运作,我们就称这个系统具有分区容错性。

以百度为例,当我们使用搜索引擎进行搜索时,访问请求会发送至百度的反向代理服务器,该服务器会根据各个提供实际搜索业务的服务器的压力、延迟等,转发我们的请求(这里涉及到负载均衡算法)。假如一般情况下,我们的搜索请求会被转发至A服务器,但是某一天A服务器发生故障宕机了,我们的请求被转发至B服务器,那么B服务器返回给我们的页面会和A服务器不同吗?返回页面会因为A服务器的故障而缺失内容吗?显然是不会的。这就说明百度处理搜索请求的分布式系统满足分区容错性的特性。(该案例仅用于帮助理解概念,不代表真实情况)

④CAP理论(又叫布鲁尔定理)

该理论指出,一个分布式系统只能满足CAP三者中其二,如下图所示
在这里插入图片描述

2、BASE理论

BASE理论是 Basically Available(基本可用)、Soft-state(软状态) 和 Eventually Consistent(最终一致性) 三个短语的缩写。实际上这个理论是对于CAP理论的一种补充,即在系统已经满足两种特性的情况下,在某种程度上保证未满足的特性。下面来对BASE理论的三种特性进行解释:

①基本可用

在分布式系统出现故障,允许损失部分可用性(注意,这里不等于系统不可用)。
举例来说,假如在理想软硬件和网络环境下,我们用搜索引擎进行一次搜索,到返回结果页面耗时0.5s。但由于部分服务器故障,服务器集群整体的压力增加,本次访问的耗时可能增加1-2s,但仍然能顺利完成访问请求,那么这个分布式系统就是基本可用的。

②软状态

允许分布式系统出现中间状态。而且中间状态不影响系统的可用性。

③最终一致性

软状态不能一直存在,分布式系统的数据必须最终达到一致。

3、ACID和BASE

传统数据库强调事务的ACID特性,而分布式数据库则遵循BASE特性。这是因为传统数据库在设计上严格保证了数据库的可靠性,但是在性能上无法应对海量数据的场景;而分布式数据库可以很好地处理海量数据场景,大幅度提高了整体数据库的性能,在设计上必然要牺牲一部分可靠性。这也体现了两者完全不同的设计哲学。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

CheneyQN

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值