概述
参考《大数据日知录》
概念
CAP:Consistency(一致性)、Availability(可用性)、Partition tolerance(分区容忍性)
CAP最初是由Eric Brewer提出,他证明了,在分布式数据系统中,CAP三要素不可能兼得,同时只能满足其中的两种。
单条解析
Consistency(一致性)
在分布式系统中,同一数据多副本的情况下,对于数据的操作能保证不会出现多份不同数据的情况。即多备份的场景与单份数据没有备份的场景,对数据的操作效果应当一样。
注意,一致性不仅仅是代表备份的数据需要与源数据保持一致。而是整个系统中要保证操作的是同一份数据。
举个例子,在主机向从机备份数据的时候,有用户直接向从机去拉取数据,如果此时从机在没有备份完主机数据的时候就返还数据,那么用户拿到的其实并不是最新的数据,这就没有保证一致性。
如果这是支付等一致性要求较高的场景,显然是不允许的。
但是如果这是小游戏、日志记录等一致性要求较低的场景,完全是可以牺牲一致性来换取可用性的。
Availability(可用性)
用户在分布式系统中的每个操作应当收到一个非错误的回应,简单来说要保证系统是一直能正常使用的。
就以支付为例,在一些异常情况下,是会有“支付失败”的问题的,这就是没有保证可用性,但是对于支付这种场景,牺牲可用性保证一致性是必须的。
Partition tolerance(分区容忍性)
分布式系统中任何机器都是可能断网或者宕机的,在这种情况下系统应该仍要能继续工作。
三者场景
CP(一致性+分区容忍性)
牺牲可用性,保证一致性,主要对于一些对一致性要求较高的场景。
比如支付,抢红包、用户数据记录等场景,
AP(可用性+分区容忍性)
牺牲一致性保证可用性,主要能提高用户体验,提高性能等。
比如日志记录,数据投递、存储系统配置等场景。
CA(一致性+可用性)
如果不保证分区容忍性,那么只要产生断网宕机等意外情况,系统就会无法工作,这会极大影响用户体验,目前应该很少有场景会完全不考虑P。
最后
以上就是愉快芒果为你收集整理的CAP简介概念单条解析三者场景的全部内容,希望文章能够帮你解决CAP简介概念单条解析三者场景所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复