0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

分布式系统CAP、ACID、BASE概念介绍

454398 来源:博客园 作者: 雪山飞猪 2020-10-20 16:37 次阅读

CAP

分布式系统中,这三个特性只能满足其中两个。

  • 一致性(Consistency):分布式中一致性又分强一致性和弱一致性,强一致性主浊任何时刻任何节点看到的数据都是一样的,弱一致性一* * 般实现的是最终一致性。
  • 可用性(Availability):集群在任何时间内都正常使用
  • 分区容错性(Partition Tolerance):某一部分集群坏掉,另一部分仍能正常工作。

对于二选一模型

  • CA模型,在分布式系统中不存在,因为舍弃P,意味着放弃分布式系统。比如单机版本的MySQL,如果MySQL考虑主备或集群部署时,它必须考虑P
  • CP模型,舍弃了可用性,一定会读取到最新的数据,不会读取到旧数据。一是因为消息丢失、延迟过高发生了网络分区,就影响用户的体验和业务的可用性。例如Etcd,Consul和Hbase
  • AP模型,舍弃了一致性,实现了服务的高可用。用户访问系统的时候,都能得到响应数据,不会出现响应错误,但会读到旧数据。比如Cassandra 和 DynamoDB。

ACID

一致性强,但是伸缩性差

  • 原子性(Atomicity):要么全部完成,要么全部失败
  • 一致性(Consistency):事务开始和完成时,数据必须保持一致的状态,数据库的完整性约束没有被破坏。比如A给B转账,不论转账事务是否成功,两者存款的总额不变
  • 隔离性(Isolation):多个事务并发访问时,事务之间是隔离的,一个事务不能影响到其他事务的结果 ,不能看到其他事务运行时中间某个时刻的数据。
  • 持久性(Durability):事务完成后,该事务对数据库所作的更改便持久地保存在数据库中,并不会被回滚

关于二阶段提交协议和TCC

  • 二阶段提交。

分成提交请求阶段(投票阶段)和提交执行阶段(完成阶段)。

第一个阶段,每个参与者投票表决事务是放弃还是提交

第二个阶段,事务的每个参与者都执行最终统一的决定

  • TCC

Tty(预留)、Confirm(确认),Cancel(撤销)

核心思想是针对每一个操作都要注册一个与基对应的确认操作和补偿操作(撤销操作)

BASE

一致性弱,伸缩性强

基本可用(Basic Availability):分布式系统出现故障时,允许损失部分可用性,保证核心可用。

软状态(Soft-state):允许系统存在中间状态,而该中间状态不会影响系统整体可用性。分布式存储中一般一份数据至少会有3个副本,允许不同节点间副本同步的延时就是软状态的体现。

最终一致性((Eventual Consistency):指所有副本经过一定时间后,最终能达到一致的状态

ACID:大家在买同一本书的过程中,每个用户的购买请求都把库存锁住,等减完库存,把锁释放,后续的人才能进行购买。于是我们同是时间不可能有多个用户下单,订单流程要有排队的情况,这样就不能做出性能比较高的系统来

BASE:大家可以同时下单,这个时间不需要真正的去分配库存,然后系统异步地处理订单,而且是批量的处理。因为下单的时候没有扣减库存,所以有可能会有超卖的情况。而后台的系统在处理订单时,发现库没有了,才会告诉用户你没有购买成功。

BASE和ACID代表两种截然相反的设计理念,ACID注重一致性,是传统关系型数据库(MySQL)的设计思路,BASE关注高可用,大多数分布式事务适合BASE.
编辑:hfy

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 分布式系统
    +关注

    关注

    0

    文章

    140

    浏览量

    19099
  • Base
    +关注

    关注

    0

    文章

    11

    浏览量

    8626
  • 关系型数据库

    关注

    0

    文章

    7

    浏览量

    2311
收藏 人收藏

    评论

    相关推荐

    分布式软件系统

    在出现故障的几率上不会比集中式数据库系统低,但由于其故障的影响仅限于局部数据应用,因此就整个系统来讲它的可靠性是比较高的。 特点 1、在分布式数据库系统里不强调集中控制概念,它具有一个
    发表于 07-22 14:53

    分布式发电技术与微型电网

    几种分布式发电简介2.分布式发电与配电网互联问题3.微型电网技术4.分布式发电(电源)技术应用的障碍和瓶颈5.分布式发电(电源)技术发展方向6.结语
    发表于 03-11 13:37

    使用分布式I/O进行实时部署系统的设计

    的8插槽机箱,与LabVIEW Real-Time的强大功能相结合,为确定性分布式I/O提供了便捷的解决方案。介绍当你需要在实时控制系统中设计分布式I/O时,你将怎么办?首要问题就是如
    发表于 03-12 17:47

    关于分布式系统的全面介绍

    操作系统-----分布式系统概述
    发表于 07-25 06:59

    如何设计分布式干扰系统

    什么是分布式干扰系统分布式干扰系统是一种综合化、一体化、小型化、网络化和智能化系统,是将众多体积小,重量轻,廉价的小功率侦察干扰机装置在易
    发表于 08-08 06:57

    分布式系统的优势是什么?

    当讨论分布式系统时,我们面临许多以下这些形容词所描述的 同类型: 分布式的、删络的、并行的、并发的和分散的。分布式处理是一个相对较新的领域,所以还没有‘致的定义。与顺序计算相比、并行的
    发表于 03-31 09:01

    HarmonyOS鸿蒙操作系统之什么是“基于微内核的全场景分布式操作系统”?

    HarmonyOS鸿蒙操作系统之什么是“基于微内核的全场景分布式操作系统”?即使作为理工科的人咋一眼看上去似乎也不太懂这是什么,就像区块链这个概念刚出来一样,普通人都是一脸懵B(当然现
    发表于 09-23 17:06

    分布式声波传感系统DAS产品介绍

    分布式声波传感系统DAS
    发表于 12-21 07:48

    分布式系统时钟解决方案

    )Naive HLC改进HLC本文将首先依次简单介绍分布式系统下的物理时钟(Physical Time,也称PT),逻辑时钟(Logical Clock,也称LC),向量时钟(Vector Clock,也称VC
    发表于 06-28 10:46

    各种分布式电源的电气特性

    PS:渗透率的概念:从字面上理解,“渗透”就是由分布式电源发出的功率进入(渗入)到配电系统,所谓的“率”就是由分布式电源发出的电和整个系统
    发表于 07-12 07:54

    如何高效完成HarmonyOS分布式应用测试?

    作者:liuxun,HarmonyOS测试架构师HarmonyOS是新一代的智能终端操作系统,给开发者提供了设备发现、设备连接、跨设备调用等丰富的分布式API。随着越来越多的开发者投入到
    发表于 12-13 18:07

    【学习打卡】OpenHarmony的分布式数据管理介绍

    分布式数据管理,英文缩写是DDM,是对一个系统中创建和收集的数据的提取、存储、组织和维护的过程进行的有效控制和管理。有效的数据管理对于运行应用程序,以及提供分析信息来帮助整个系统进行规划和决策,从而
    发表于 07-15 15:49

    存储分布式系统中如何从CAP转到PACELC

    CAP理论是当前分布式存储系统设计的理论指导,而PACELC理论是CAP理论的扩展,分布式存储系统
    发表于 06-10 01:45 2604次阅读
    存储<b class='flag-5'>分布式</b><b class='flag-5'>系统</b>中如何从<b class='flag-5'>CAP</b>转到PACELC

    关于分布式系统的几个问题

    本文摘自:华为云社区 作者:华为加拿大研究院软件专家 Jet老师 小引 分布式系统是一个古老而宽泛的话题,而近几年因为 大数据 概念的兴起,又焕发出了新的青春与活力。本文将会通过对如下几个问题展开
    的头像 发表于 09-23 16:28 2838次阅读

    分布式系统概念与设计》第五版

    分布式系统概念与设计》第五版
    发表于 03-08 11:20 0次下载