概述
文章目录
- 一、CAP原则(CAP定理)
- 1. 如何选择CP/AP
- 二、其他参考
一、CAP原则(CAP定理)
CAP 定理的含义
参考URL: http://www.ruanyifeng.com/blog/2018/07/cap.html
CAP原则(CAP定理)、BASE理论
参考URL: https://blog.csdn.net/kevin_loving/article/details/80655345
CAP理论关注的是数据的读写操作,而不是分布式系统的所有功能。像分布式系统的负载均衡、容错等都不是CAP理论的讨论范围。CAP理论针对的是互相连接并且共享数据的分布式系统的数据的读写操作。
CAP是Consistency、Availablity和Partition-tolerance的缩写。分别是指:
-
一致性(Consistency):每次读操作都能保证返回的是最新写操作的结果。
-
可用性(Availablity):任何一个没有发生故障的节点,会在合理的时间内返回一个正常的结果;举个例子,查询本应是返回A,结果返回的是B,就是满足了可用性,但是显然,没满足一致性。
-
分区容忍性(Partition-torlerance):在出现网络分区(比如断网)的情况下,分离的系统也能正常运行。
大多数分布式系统都分布在多个子网络。每个子网络就叫做一个区(partition)。分区容错的意思是,区间通信可能失败。比如,一台服务器放在中国,另一台服务器放在美国,这就是两个区,它们之间可能无法通信。
在分布式系统中,网络不是100%可靠的,所以我们必须选择P。
CAP理论指出:CAP三者只能取其二,不可兼得。其实这一点很好理解:
首先,单机都只能保证CP
有两个或以上节点时,当网络分区发生时,集群中两个节点不能相互通信(也就是说不能保证可用性A)。此时如果保证数据的一致性C,那么必然会有一个节点被标记为不可用的状态,违反了可用性A的要求,只能保证CP。
反正,如果保证可用性A,即两个节点可以继续各自处理请求,那么由于网络不通不能同步数据,必然又会导致数据的不一致,只能保证AP。
1. 如何选择CP/AP
对于分布式存储系统而言,分区容错性§是基本需求,因此只有CP和AP两种选择。一个分布式系统不可能满足一致性,可用性和分区容错性这三个需求,最多只能同时满足两个。因此在进行分布式架构设计时,必须做出取舍。而对于分布式数据系统,分区容忍性是基本要求,否则就失去了价值。
选择CP/AP其实一个很大的难题。一个系统里有很多个功能和业务,而对于不同的业务和功能,我们可以选择不同的模型。举个例子,我们做一个秒杀系统,查询商品的时候我们可以选择AP架构,短时间的数据不一致,保证用户可以查询出列表,但购买商品的时候,我们要选择CP架构,没有库存,就不能进行购买。但是整个秒杀系统,不是AP也不是CP,而是AP和CP的混合。
所以在实际的设计和开发中,我们要灵活运用CAP理论,灵活选择AP或CP架构。
总结: 一般互联网项目,牺牲一致性,保证可用性,把强一致性降级为最终一致性,多用AP。
区块链项目,则一般是CP。
二、其他参考
CAP理论,浅谈我的理解
参考URL: https://blog.csdn.net/lhx574938077/article/details/86823722
最后
以上就是清秀时光为你收集整理的CAP理论-快速开始的全部内容,希望文章能够帮你解决CAP理论-快速开始所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复