824次浏览 发布时间:2024-03-10 19:48:41
CAP是Consistency、Availability、Partition tolerance三个词语的缩写,分别表示一致性、可用性、分区容忍性。
为了方便对CAP理论的理解,我们结合电商系统中的一些业务场景来理解CAP。
一致性是指写操作后的读操作可以读取到最新的数据状态,当数据分布在多个节点上时,从任意节点上读取的数据都是最新的。
上图中,商品信息的读写要满足一致性就要实现下面的目标:
商品服务成功写入主数据库后,立刻能从从数据库中查询到最新的数据。
如何实现一致性?
可用性是指任何事务操作都可以得到响应结果,且不会出现响应超时或响应错误。
上图中,商品信息的读写要满足可用性就要实现下面的目标:
如何实现可用性?
通常分布式系统的各个节点部署在不同的子网,这就是网络分区;因为网络分区存在,那么不可避免地会出现由于网络问题而导致节点之间通信失败,此时系统仍可对外提供服务,这就叫分区容忍性。
上图中,商品信息的读写要满足分区容忍性就要实现下面的目标:
如何实现分区容忍性?
注意:分区容忍性是分布式系统应具备的基本能力。
在所有分布式事务场景中不会同时具备CAP三个特性,因为在具备了P的前提下C和A是不能共存的。
放弃一致性,追求可用性和分区容忍性。这是很多分布式系统设计时的选择。
例如上面的商品服务,完全可以实现AP,前提是用户可以接受所查询的数据在一定时间内不是最新的。
通常实现AP时都会保证最终一致性。BASE理论就是根据AP来扩展的。
放弃可用性,追求一致性和分区容忍性。zookeeper其实就是追求的强一致性。
一般分布式系统不会采用。
CAP是一个已经被证实的理论:一个分布式系统最多只能同时满足一致性(Consistency)、可用性(Availability)和分区容忍性(Partition tolerance)这三项中的两项。它可以作为我们进行架构设计、技术选型的考量标准。对于多数大型互联网系统,节点众多、部署分散,节点故障和网络故障都是常态,而且要保证服务可用性达到N个9(99.99....%),并且要达到良好的响应性能,因此一般都会做出如下选择:保证P和A,舍弃C,保证最终一致性。
目前最火的仙侠手游推荐,最好玩的仙侠手游排行榜
2025-09-10 22:29:26DNF黄金周用黄金胶囊,版本养猪超轻松
2025-09-04 08:12:59从无人问津到万众期待?回顾《骑马与砍杀》系列游戏的发展轨迹
2025-09-04 03:18:31怪兽8号手游好玩吗?值得玩吗?真实体验告诉你答案
2025-09-03 13:32:30EA免费游戏《极速滑板》9月16日登陆抢先体验
2025-09-03 02:59:05姬小满如此强大,KPL关键对局却选亚连,两个英雄有啥区别呢
2025-09-02 10:16:26《英雄年代》手游:特色活动大揭秘,欢乐无限笑江湖
2025-09-02 03:53:01《失踪的班班 Missing Banban》横版动作冒险里Banban宇宙疯狂友情
2025-09-01 21:16:45Switch NSP中文 浪漫沙迦开拓者 2 复刻版/SaGa 未拓領域 2 Remastered
2025-09-01 12:31:09兵团突击:现代战争Operation: Polygon Storm Switch NSP中文
2025-08-31 23:38:54女生怎样让男生更离不开你(让男人,离不开你的方法)
发布时间:2025-08-13 02:12:17对异性说晚安的含义是什么(你知道晚安的真正含义吗)
发布时间:2025-08-12 09:01:29难以维持的婚姻要怎么办(夫妻间一定要做这些事情)
发布时间:2025-08-12 02:24:16女朋友说不合适要怎么挽回(对方觉得不合适分手,应该如何挽回?)
发布时间:2025-08-11 09:22:49直男喜欢什么类型的女孩子(直男眼中的“女神”有三种类型)
发布时间:2025-08-11 02:25:16男女之间在玩暧昧的表现(有过以下三种“亲密举动”,往往关系就暧昧了)
发布时间:2025-08-10 12:21:56网站内容来自网络,如有侵权请联系我们,立即删除!
Copyright © 鸾百科 琼ICP备2023010660号-6