分布式领域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. Python处理MLDonkey 下载中文文件乱码问题 (2)
  2. mysql cpu高 重启无效_解决mysqlcpu高的问题
  3. caffe matlab 重启,Matlab caffe 具体使用方法
  4. Java进阶之路——从初级程序员到架构师,从小工到专家(转)
  5. 怎样搞研究的一套思路
  6. Unix文件系统基本结构
  7. c语言通讯录感想,C语言通讯录实例分享
  8. 安装SQL Server 2012时报.net framework 3.5错误
  9. Springboot+Mybatis接口快速上手
  10. unity实现去中心化社交软件
  11. 有一天我们可不可以这样相爱……
  12. 《二代征信》与你的生活息息相关 (1)
  13. 什么是OEM ODM JDM OQM OBM?
  14. 软件测试需要学习什么 3分钟带你了解软测的学习内容
  15. 协同(OA)应用中的七个机制
  16. 股票集合竞价规则详解,什么是集合竞价?集合竞价技巧分析
  17. CyclicBarrier实现赛马游戏
  18. 如何自定义设置虚拟机的的IP地址
  19. AspectJ与CGLIB
  20. C4996 ‘scanf‘: This function or variable may be unsafe. Consider using scanf_s instead.

热门文章

  1. Visual Basic.NET中访问数据的方法(zz)
  2. java内存溢出分析工具:jmap使用实战
  3. apache+tomcat配置
  4. 【HAVENT原创】Node Express API 通用配置
  5. WPF中的动画——(一)基本概念
  6. AlfaLaval公司采用低速通风技术冷却数据中心
  7. HTTP状态码:400\500 错误代码
  8. [转]T4模版引擎之基础入门
  9. NDK-r14b + FFmpeg-release-3.4 linux下编译FFmpeg
  10. 建信01. 间隔删除链表结点