问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

什么是CAP原理

发布网友 发布时间:2022-04-30 11:25

我来回答

3个回答

懂视网 时间:2022-04-30 15:46

 

延伸阅读:数据一致性-分区可用性-性能——多副本强同步数据库系统实现之我见

 

CAP定理与RDBMS的ACID

标签:

热心网友 时间:2022-04-30 12:54

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

热心网友 时间:2022-04-30 14:12

CAP原则又称CAP定理,指的是在一个分布式系统中, Consistency(一致性)、 Availability(可用性)、Partition tolerance(分区容错性),三者不可得兼。
分布式系统的CAP理论:理论首先把分布式系统中的三个特性进行了如下归纳:

1. 一致性(C):在分布式系统中的所有数据备份,在同一时刻是否同样的值。(等同于所有节点访问同一份最新的数据副本),换句话就是说,任何时刻,所用的应用程序都能访问得到相同的数据。

2.可用性(A):在集群中一部分节点故障后,集群整体是否还能响应客户端的读写请求。(对数据更新具备高可用性),换句话就是说,任何时候,任何应用程序都可以读写数据。
3.分区容错性(P):以实际效果而言,分区相当于对通信的时限要求。系统如果不能在时限内达成数据一致性,就意味着发生了分区的情况,必须就当前操作在C和A之间做出选择,换句话说,系统可以跨网络分区线性的伸缩和扩展。
不可能设计出既满足一致性,有满足可用性还同时满足分区容错性的系统。其实就是一个三角约束,咱们触类旁通一下,学过项目的管理的同学都知道,在项目管理中也有一个有名的黄金三角约束:时间,质量和成本或者时间,成本和范围的三角约束。
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
微信限额20万怎样提到30万 微信怎么提升限额 微信限制额度二十万了怎么办 爱奇艺电视版会员电影没声音 爱奇艺怎么没声音了 爱奇艺万能播放器怎么没声音-爱奇艺播放器没声音修复方法 爱奇艺播放没有声音了怎么回事 主持人刘炽朗诵《采桑子·重阳》 卧室空间大了摆放什么风水好 卧室空间大了摆放什么 中国平安金融集团上海分公司这公司是一家怎样的公司?是骗子吗? roblox用登记吗? 手机换卡后联系人怎么恢复 康佳电视遥控器进水了怎么办 电视遥控器进水了怎么办 电视遥控器进水了还能用吗? 乐视电视遥控器掉水里拿出来晾了一天了也反应了怎么办 遥控器不小心掉进水里了 现在不灵了怎么办 遥控器掉水里后,拿出来晒干后,用不了怎么办? 长虹遥控器进水左键不好使怎么办? 电视遥控器掉水里了怎么办? 有一句歌词是最后一次感觉你的温柔 有一首歌的歌词是:如果直到那时,再说一次... 请问歌名是什么啊? 谁能给我说一部有玩女尸的电影 女子在旅馆卫生间内独自产下女婴,随后掐死并抛尸,旅店是否也需承担责任? 这么漂亮的美女丧尸,打死实在太可惜了是什么电影? 孩子喜欢看掐死女尸溺死美女是犯了什么病了? 什么电影里有掐死美女的电影? 高分悬赏 24岁女掐死新生女儿并抛尸,女子为何会这么狠心? 什么电影里有掐死美女的电影 高分悬赏 女子酒店产女,10分钟后掐死并抛尸,她的行为在法律中如何定性? 对人有益的细菌有哪些 有哪些细菌对人体有益,有害也行 下列哪种细菌是对人体有益的A大肠杆菌B乳酸菌C金黄色葡萄球菌 人们认为细菌都是有害的,有哪些细菌是对人体有益的? 空气中有哪些细菌对人体有益? 人体内的“好”细菌是什么? 哪些细菌对人体有害或有益? 那些细菌对人有益 对人体有益的细菌有哪些举例5个 哪些细菌对身体有益,哪些无益? 细菌对人有益的有哪些 举一个例子 并说它有哪些好处 有益细菌有哪些 哪些细菌对人类有益 什么是细菌,对人体好吗 细菌有对人体有益的吗? 细菌或病毒对人类有益的方面有哪些? 细菌或病毒对人类有益的方面有哪些 ??? 我之前用的vivo手机,玩儿游戏用的vivo账号登录的,现在换成华为,怎么用原来的账号登录游戏 因为手机被偷了换了其他牌子手机 要想重新登录华为游戏账号怎么办? 我之前在vivo手机上下载了光遇游戏完了几个月的但现在我换手机了我还想玩回以前的号怎么弄啊?