分布式 | 系统遵循原则的演变 ACID-CAP-BASE


theme: channing-cyan

这是我参与8月更文挑战的第12天,活动详情查看:8月更文挑战

一、ACID 原则

对于大多数使用关系型数据库的开发人员,ACID(原子性、一致性、隔离性和持久性)原则对于他们再熟悉不过了。这个概念已经存在了几十年了,直到最近,它一直也是所有书库努力实现的主要基准,如果一个给定的数据库系统中未满足ACID的要求,那么这个系统的可靠性就很值得怀疑。

ACID当然是有四个组成部分:

  • Atomicity(原子性) :在执行事务的任务集合内,要么都不执行,要么每一个都执行成功。有一种宁缺毋滥的含义。
  • Consistency(一致性) :事务必须在任何时候都能满足系统定义的所有协议和规则。数据库必须在事务的开始和结束时保持一致的状态,永远不存在完成一半的事务。
  • Isolation(隔离性) :任何事务都不能访问处于中间状态或未完成状态的其它事务。因此每笔交易都是独立的。
  • Durability(持久性) :一旦交易完成,它将持续作为完整的数据,并且不能撤销;它能经受住系统故障等其它类型的故障。

总的来说,在关系型数据库中,ACID是绝对的霸主。较适合于,规模较小、水平伸缩、数据模式驱动、规范化的关系性数据系统中。

二、CAP原则

时代已经发生了翻天覆地变化,我们需要面对非结构化数据、大数据、非关系型数据结构、分布式计算系统等等。ACID已经显得不够用了,我们需要权衡,有所取舍,所以有了CAP原则。

CAP原则有三个部分组成部分:

  • Consistency,一致性,意味着所有的分布式节点在同一时间读取的数据都是相同的。
  • Availability,可用性,它是一种保证,意味着每个请求都会收到一个关于他是否成功或失败的响应。
  • Partition Tolerance,分区容错性,意味着系统可以在分布式部分节点系统故障、网络通讯故障等情况下继续提供服务。

在分布式系统正常运行情况下,以上三个功能都提供。一旦发生故障,分区容错性必须保证,一致性或可用性只能二选一,这是一种利弊权衡。

三、BASE原则

BASE 是 Basically Available(基本可用)、Soft state(软状态)和 Eventually consistent(最终一致性)三个短语的简写。BASE原则是 CAP 定理对于一致性与可用性权衡的结果。

BASE 理论的核心思想是:即使无法做到强一致性,但每个系统都可以根据自身的业务特点,采用适当的方式来使系统达到最终一致性。

  • Basically Available,基本可用,是指分布式系统在出现不可预知故障的时候,允许损失部分可用性。比如损失响应时间、服务降级。
  • Soft state,软状态,是指允许系统数据存在的中间状态,并认为该中间状态的存在不会影响系统的整体可用性,即允许系统主机间进行数据同步的过程存在一定延时。
  • Eventually consistent,最终一致性,强调的是系统中所有的数据副本,在经过一段时间的同步后,最终能够达到一个一致的状态。最终一致性包括因果一致性、读己之所写、会话一致性、单调读一致性、单调写一致性。

总的来说,CAPBASE 原则是对ACID的一种权衡的选择,针对系统的复杂性增强,计算成本增加,我们要保持高效地与客户互动。在必要的可用性和分区容忍度下,降低各项成本,但同时也能让系统运行良好,使客户满意,何乐而不为?

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值