我是靠谱客的博主 愉快芒果,最近开发中收集的这篇文章主要介绍CAP简介概念单条解析三者场景,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

参考《大数据日知录》

概念

CAP:Consistency(一致性)、Availability(可用性)、Partition tolerance(分区容忍性)
CAP最初是由Eric Brewer提出,他证明了,在分布式数据系统中,CAP三要素不可能兼得,同时只能满足其中的两种。

单条解析

Consistency(一致性)

在分布式系统中,同一数据多副本的情况下,对于数据的操作能保证不会出现多份不同数据的情况。即多备份的场景与单份数据没有备份的场景,对数据的操作效果应当一样。

注意,一致性不仅仅是代表备份的数据需要与源数据保持一致。而是整个系统中要保证操作的是同一份数据。
举个例子,在主机向从机备份数据的时候,有用户直接向从机去拉取数据,如果此时从机在没有备份完主机数据的时候就返还数据,那么用户拿到的其实并不是最新的数据,这就没有保证一致性。
如果这是支付等一致性要求较高的场景,显然是不允许的。
但是如果这是小游戏、日志记录等一致性要求较低的场景,完全是可以牺牲一致性来换取可用性的。

Availability(可用性)

用户在分布式系统中的每个操作应当收到一个非错误的回应,简单来说要保证系统是一直能正常使用的。

就以支付为例,在一些异常情况下,是会有“支付失败”的问题的,这就是没有保证可用性,但是对于支付这种场景,牺牲可用性保证一致性是必须的。

Partition tolerance(分区容忍性)

分布式系统中任何机器都是可能断网或者宕机的,在这种情况下系统应该仍要能继续工作。

三者场景

CP(一致性+分区容忍性)

牺牲可用性,保证一致性,主要对于一些对一致性要求较高的场景。
比如支付,抢红包、用户数据记录等场景,

AP(可用性+分区容忍性)

牺牲一致性保证可用性,主要能提高用户体验,提高性能等。
比如日志记录,数据投递、存储系统配置等场景。

CA(一致性+可用性)

如果不保证分区容忍性,那么只要产生断网宕机等意外情况,系统就会无法工作,这会极大影响用户体验,目前应该很少有场景会完全不考虑P。

最后

以上就是愉快芒果为你收集整理的CAP简介概念单条解析三者场景的全部内容,希望文章能够帮你解决CAP简介概念单条解析三者场景所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(82)

评论列表共有 0 条评论

立即
投稿
返回
顶部