分布式领域CAP理论

分布式领域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等领域,是一种可以拿来就用的产品,而领域模型 + 分布式缓存 + 存储是一种复杂的架构解决方案,不是产品,但这种方式更灵活,更应该是架构师必须掌握的。

时间: 2024-10-12 13:06:34

分布式领域CAP理论的相关文章

辛星整理之CAP理论与一致性

说明:本系列内容不是本人原创,而是数位专家学者的经验和观点的一些集合,在此也向做出有效工作的各位前辈先驱们致敬. 首先说一下CAP理论的这三个单词都是什么: (1)所谓C,即Consistent,也就是一致性. (2)所谓A,也就是Availability,即可用性,所谓可用性,可以理解为快速获取数据. (3)所谓P,也就是Partition,即Tolerance  of  Network  Partition,也就是分区容忍性,其实就是分布式. CAP理论的提出者是Eric  Brewer教授

转载:分布式领域中的CAP理论

文章内容来源于网络. CAP理论,指的是一个分布式系统无法同时满足Consistency(一致性). Availability(可用性).Partition tolerance(分区容错性).目前最流行的对CAP理论解释的情形是从数据在网络环境中存在多个副本出发的. Consistency(一致性)是指分布式系统中的所有节点的数据是否一致,可以分为强一致性和弱一致性,弱一致性中最为常用的是最终一致性.强一致性指的是任何时刻各个节点的数据总是一致的.最终一致性是一致性中较弱的一种,同一时刻各个节点

从分布式一致性谈到CAP理论、BASE理论

问题的提出 在计算机科学领域,分布式一致性是一个相当重要且被广泛探索与论证问题,首先来看三种业务场景. 1.火车站售票 假如说我们的终端用户是一位经常坐火车的旅行家,通常他是去车站的售票处购买车票,然后拿着车票去检票口,再坐上火车,开始一段美好的旅行----一切似乎都是那么和谐.想象一下,如果他选择的目的地是杭州,而某一趟开往杭州的火车只剩下最后一张车票,可能在同一时刻,不同售票窗口的另一位乘客也购买了同一张车票.假如说售票系统没有进行一致性的保障,两人都购票成功了.而在检票口检票的时候,其中一

(二)从分布式一致性谈到CAP理论、BASE理论

问题的提出 在计算机科学领域,分布式一致性是一个相当重要且被广泛探索与论证问题,首先来看三种业务场景. 1.火车站售票 假如说我们的终端用户是一位经常坐火车的旅行家,通常他是去车站的售票处购买车票,然后拿着车票去检票口,再坐上火车,开始一段美好的旅行----一切似乎都是那么和谐.想象一下,如果他选择的目的地是杭州,而某一趟开往杭州的火车只剩下最后一张车票,可能在同一时刻,不同售票窗口的另一位乘客也购买了同一张车票.假如说售票系统没有进行一致性的保障,两人都购票成功了.而在检票口检票的时候,其中一

从分布式事务到CAP理论和BASE理论

前言 我在<数据库事务和事务的隔离级别>和<再谈数据库事务隔离级别>两篇文章中详细介绍了数据库事务的隔离级别.本文将会从分布式的事务开始谈起,以及CAP理论和BASE理论. 分布式事务 随着分布式计算的发展,事务在分布式计算领域中也得到了广泛的应用.在单机数据库中,我们很容易能够实现一套满足ACID特性的事务处理系统,但是在分布式数据库中,数据分散在各台不同的机器上,如何对这些数据进行分布式事务处理具有非常大的挑战. 分布式事务是指事务的参与者,支持事务的服务器,资源服务器以及事务

【转】分布式理论-CAP理论

一 CAP理论简述 海量数据管理中的一致性理论,包括CAP理论,BAS理论,数据一致性理论模型,以及现有的经典数据一致性技术.其中CAP (Consistency, Availability, Partition  Tolerance,) 理论是NoSQL数据库管理系统构建的基础. CAP定律说的是在一个分布式计算机系统中,一致性,可用性和分区容错性这三种保证无法同时得到满足,最多满足两个.该定律作为猜想在2000年提出,2002年被证实. 强一致性:系统在执行过某项操作后仍然处于一致的状态.在

cap理论与分布式事务的解决方案

现在很火的微服务架构所设计的系统是分布式系统.分布式系统有一个著名的CAP理论,即一个分布式系统要同时满足一致性(Consistency).可用性(Availablility)和分区容错(Partition Tolerance)三个特性是一件不可能的事情. CAP理论的简介 CAP理论是由Eric Brewer在2000年的PODC会议上提出的,该理论在两年后被证明成立. CAP理论告诉架构师不要妄想设计出同时满足三者的系统,应该有所取舍,设计出适合业务的系统. 一致性(Consistency)

【D】分布式系统的CAP理论

2000年7月,加州大学伯克利分校的Eric Brewer教授在ACM PODC会议上提出CAP猜想.2年后,麻省理工学院的Seth Gilbert和Nancy Lynch从理论上证明了CAP.之后,CAP理论正式成为分布式计算领域的公认定理. CAP理论概述 一个分布式系统最多只能同时满足一致性(Consistency).可用性(Availability)和分区容错性(Partition tolerance)这三项中的两项. CAP的定义 Consistency 一致性 一致性指"all no

CAP理论(摘)

先解释一下软件编程中常见的一些概念: 抽象先于具象.这个抽象并非虚无的抽象,而是指事物尚未分化为具象之前的那个前体存在.当那个前体存在分化成具象存在之后,前体存在就退化为背景,成为一种抽象. 结构是关联与互动的复合体. 接口是结构的耦合点. 架构是从无结构到有结构的过程. 重构是从旧结构到新结构的过程. 也就是说,结构是架构的结果,架构是结构化的过程. 常听人说语言是工具,这是错误的.语言不是工具,但它和工具都是大脑的延伸.语言是介于智力与工具之间的衔接物. 就好比,人类语言是人与人之间的沟通媒