一文认识大数据的CAP原则和BASE原则

CAP是什么

CAP原则又称CAP定理,指的是在一个分布式系统中,一致性(Consistency)、可用性(Availability)、分区容错(Partition-tolerance),在一个分布式系统中三个要素不可同时具有,只能选择其中两个,不可能三者兼顾。不可以同时满足的主要原因是当出现通信失败时(即出现分区容错),此时集群的一致性C和可用性A不可以同时满足。
(1) 一致性(Consistency)
在分布式系统中,所有节点在同一时刻的数据都是一致的。在分布式系统中,一致性可以分为两种类型:强一致性和弱一致性。强一致性要求在任何时刻,所有节点都能看到相同的数据,而弱一致性允许在某些情况下,部分节点可能看到不同的数据。

(2) 可用性(Availability)
可用性是指系统在任何时刻都能提供服务。在分布式系统中,可用性是一个重要的指标,它可以用来衡量系统的稳定性和可靠性。可用性通常被定义为系统在一段时间内无法提供服务的概率。

(3) 分区容错(Partition-tolerance)
分区容错性是指系统在网络分区的情况下仍然能够正常工作。在分布式系统中,网络分区是一个常见的问题,它可能导致系统的故障和数据丢失。因此,分区容错性是一个重要的一致性要素,它可以帮助我们确保系统在网络分区的情况下仍然能够正常工作。
一个分布式系统里面,节点组成的网络本来应该是连通的,然而可能因为一些故障,使得有些节点之间不连通了,整个网络就分成了几块区域,数据就散布在了这些不连通的区域中,这就叫分区。

CAP场景

取舍策略应用场景
CA:一致性和可用性传统的关系型数据库:ORACLE / MYSQL
CP:一致性和分区容错性分布式数据库:HBASE / REDIS / ZOOKEEPER
AP:可用性和分区容错性EUREKA / COUNCHDB

BASE

BASE是Basically Available(基本可用)、Soft state(软状态)和Eventually consistent(最终一致性)三个短语的简写。BASE是对CAP中一致性和可用性权衡的结果,其来源于对大规模互联网系统分布式实践的结论,是基于CAP定理逐步演化而来的,其核心思想是即使无法做到强一致性(Strong consistency),但每个应用都可以根据自身的业务特点,采用适当的方式来使系统达到最终一致性(Eventual consistency)。
基本可用是指分布式系统在出现不可预知故障的时候,允许损失部分可用性,但这绝不等价于系统不可用。
(1) 响应时间上的损失:正常情况下,一个在线搜索引擎需要0.5秒内返回给用户相应的查询结果,但由于出现异常(比如系统部分机房发生断电或断网故障),查询结果的响应时间增加到了1~2秒。

(2) 功能上的损失:正常情况下,在一个电子商务网站上进行购物,消费者几乎能够顺利地完成每一笔订单,但是在一些节日大促购物高峰的时候,由于消费者的购物行为激增,为了保护购物系统的稳定性,部分消费者可能会被引导到一个降级页面。

(3) 弱状态:也称为软状态,和硬状态相对,是指允许系统中的数据存在中间状态,并认为该中间状态的存在不会影响系统的整体可用性,即允许系统在不同节点的数据副本之间进行数据同步的过程存在延时。

(4)最终一致性:强调的是系统中所有的数据副本,在经过一段时间的同步后,最终能够达到一个一致的状态。因此,最终一致性的本质是需要系统保证最终数据能够达到一致,而不需要实时保证系统数据的强一致性。BASE 理论在 NoSQL 中应用广泛,是 NoSQL 系统设计的事实上的理论支撑。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

cloneme01

谢谢您的支持与鼓励!

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

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

打赏作者

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

抵扣说明:

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

余额充值