分布式领域CAP理论具体如下:
Consistency(一致性):数据一致更新,所有数据变动都是同步的;
Availability(可用性):好的响应性能;
Partition tolerance(分区容错性):可靠性;

定理:任何分布式系统只可同时满足二点,没法三者兼顾。
忠告:架构师不要将精力浪费在如何设计能满足三者的完美分布式系统,而是应该进行取舍。

关系数据库的ACID模型拥有 高一致性 + 可用性,很难进行分区:
Atomicity原子性:一个事务中所有操作都必须全部完成,要么全部不完成。
Consistency一致性:在事务开始或结束时,数据库应该在一致状态。
Isolation隔离层:事务将假定只有它自己在操作数据库,彼此不知晓。
Durability:一旦事务完成,就不能返回。
跨数据库事务:2PC (two-phase commit), 2PC is the anti-scalability pattern (Pat Helland) 是反可伸缩模式的,JavaEE中的JTA事务可以支持2PC。因为2PC是反模式,尽量不要使用2PC,使用BASE来回避。

BASE模型反ACID模型,完全不同ACID模型,牺牲高一致性,获得可用性或可靠性:
Basically Available基本可用。支持分区失败(e.g. sharding碎片划分数据库)
Soft state软状态 状态可以有一段时间不同步,异步。
Eventually consistent最终一致,最终数据是一致的就可以了,而不是时时高一致。

BASE思想的主要实现有
1.按功能划分数据库
2.sharding碎片

BASE思想主要强调基本的可用性,如果你需要High
可用性,也就是纯粹的高性能,那么就要以一致性或容错性为牺牲,BASE思想的方案在性能上还是有潜力可挖的。

现在NoSQL运动丰富了拓展了BASE思想,可按照具体情况定制特别方案,比如忽视一致性,获得高可用性等等,NOSQL应该有下面两个流派:
1. Key-Value存储,如Amaze Dynamo等,可根据CAP三原则灵活选择不同倾向的数据库产品;
2. 领域模型 + 分布式缓存 + 存储 (Qi4j和NoSQL运动),可根据CAP三原则结合自己项目定制灵活的分布式方案,难度高。
这两者共同点:都是关系数据库SQL以外的可选方案,逻辑随着数据分布,任何模型都可以自己持久化,将数据处理和数据存储分离,将读和写分离,存储可以是异步或同步,取决于对一致性的要求程度。
不同点:NOSQL之类的Key-Value存储产品是和关系数据库头碰头的产品BOX,可以适合非Java如PHP RUBY等领域,是一种可以拿来就用的产品,而领域模型 + 分布式缓存 + 存储是一种复杂的架构解决方案,不是产品,但这种方式更灵活,更应该是架构师必须掌握的。

转载于:https://www.cnblogs.com/moonandstar08/p/5087010.html

分布式领域CAP理论相关推荐

  1. 「数据库系列四」分布式数据库CAP理论与最终一致性

    传统关系型数据库中事务有四个重要的特性,简称ACID,即 原子性 : 事务是一个不可分割的工作单位,事务中的操作要么都成功,如果有一个执行失败,所有的SQL将都被撤销,恢复到事务开始的状态 一致性 : ...

  2. 事务连接中断_一文搞懂分布式事务-CAP理论

    互联网系统中,分布式事务是无法避免的,目前多数解决方案是BASE理论,最终一致性,结合事务补偿. 1.什么是CAP理论. CAP理论,又称为布鲁尔定理,是加州大学伯克利分校的计算机科学家埃里克.布鲁尔 ...

  3. 分布式数据库CAP理论

    传统数据库与NoSQL数据库 传统的关系型数据库在功能支持上通常很宽泛,从简单的键值查询,到复杂的多表联合查询再到事务机制的支持.而与之不同的是,NoSQL系统通常注重性能和扩展性,而非事务机制(事务 ...

  4. Day431.本地事务分布式事务CAP理论 -谷粒商城

    本地事务 一.本地事务 一个或一组SQL语句组成一个执行单元,这个执行单元要么全部执行,要么全部不执行 二.ACID 特性 原子性:一个事务的整体操作不可拆分,要么都成功,要么都失败 一致性:一个事务 ...

  5. 5 CAP理论是什么?

    文章目录 一致性(C) 可用性(A) 分区容错性(P) 相互关系 CA without P CP without A AP without C 总结   CAP 理论是针对分布式数据库而言的,它是指在 ...

  6. 分布式理论:CAP理论

    2019独角兽企业重金招聘Python工程师标准>>> 一.CAP理论原理 1.CAP理论介绍 2000年7月,加州大学伯克利分校的Eric Brewer教授在ACM PODC会议上 ...

  7. 学习分布式不得不会的CAP理论

    2018年07月16日 11:52:59 Hollis在CSDN 阅读数:161更多 个人分类: 架构 2000年7月,加州大学伯克利分校的Eric Brewer教授在ACM PODC会议上提出CAP ...

  8. base cap 分布式_神一样的CAP理论被应用在何方?

    " 对于开发或设计分布式系统的架构师工程师来说,CAP 是必须要掌握的理论. 图片来自 Pexels But:这个文章的重点并不是讨论 CAP 理论和细节,重点是说说 CAP 在微服务中的开 ...

  9. 分布式——ACID原则 CAP理论

    分布式计算的原理 分布式计算就是将计算任务分摊到大量的计算节点上,一 起完成海量的计算任务.而分布式计算的原理和并行计算 类似,就是将一个复杂庞大的计算任务适当划分为一个个 小任务,任务并行执行,只不 ...

最新文章

  1. 麦咭早教机器人_号外|「2019第一站」麦咭亮相香港国际授权展!
  2. php和python学哪个-php和python哪个
  3. val, lazy, def
  4. Netstars CTO 陈斌:技术管理的两种思路
  5. Oracle 行转列pivot 、列转行unpivot 的Sql语句总结
  6. android7开发问题,Android开发问题总结(一)
  7. [BZOJ3684]大朋友和多叉树
  8. Web应用程序开发课程总结
  9. 求一亿以内的回文质数(素数)
  10. 【重磅】Libra Credit 和Uphold 达成战略合作
  11. 韶关市教育信息化名教师蓝凌工作室成员简介
  12. 赵明称荣耀2022年全球销量有望翻倍;微软完成197亿美元收购Nuance | 美通社头条...
  13. 解决Unity3d 图片黑边问题
  14. windows系统搜索本地文件缓慢怎么办?
  15. 查询rssi指令_RSSI测量方法及网络设备、终端设备与流程
  16. 读书笔记—YES!产品经理(上册)
  17. Python基础学习第八天
  18. 一周一书一文(20160814):让未来现在就来——彭小六
  19. 数据库结构对比工具---Database Compare
  20. 翻煎饼问题swust oj~~~254

热门文章

  1. iframe css练习
  2. 跨平台加密版 SQLite 3 - wxSQLite3
  3. 经典问题之「分支预测」
  4. clipboard 在 vue 中的使用
  5. POJ 3608 旋转卡壳
  6. 32位JDK和64位JDK
  7. 在使用angularjs过程,ng-repeat中track by的作用
  8. mysql创建定时器(event),查看定时器,打开定时器,设置定时器时间
  9. HDU 2376 Average distance
  10. smarty二维foreach示例[顺代一维数组],再次加强版