栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 前沿技术 > 大数据 > 大数据系统

CAP理论的浅析

CAP理论的浅析

在学习分布式和微服务的一开始接触到了CAP理论,那么CAP理论到底说明什么?下面谈谈我对CAP的一些见解

CAP的概念

CAP是由三个单词组成,这三个单词分别是
1.一致性(consistency)
在分布式系统中的所有数据备份,在同一时刻是否同样的值。(等同于所有节点访问同一份最新的数据副本)
2.可用性(Availability)
(对用户服务的可用性)
3.分区容惜性(Partitiontolerance)
对分区或者因故障导致的分区的容忍性(可用性)
当然我相信大家看了上面的概念之后就会有一种懂了但是没有完全懂的感觉,就是那种别人问你:“什么是CAP中的P”,你估计会自信的说:“啊 你问CAP中的P什么啊,很简单啊,P不就是CAP中的P吗?不就是分区容惜性嘛”,估计听到你回答的人心里会忍不住吐槽:“你跟我搁这搁这呢”
那么什么是CAP呢?

P

我认为学习CAP的过程应该是先学习P而不是先学习C/A,因为在分布式系统中数据是分散的,比如根据不同业务将数据进行分库分机器存放,那么有这么一种场景,首先抛开CAP的理念的指导、抛开机器或服务不可用的场景、抛开大并发的情况,我们在搭建分布式的时候,谁会费时费力的搭建服务集群,都是单机在跑好吧,那么那么就不会有“分区”的概念了,然而现实不是我们想象中那么美好,生产环境上一定会有上述的机器或服务不可用的场景那么单机就会出现问题了,比如一个服务或数据库宕机,那么单机环境下这个项目整体就没了,所以我们需要采用集群,这样在集群中每个服务或数据库都可以理解为一个“区”,宏观上来讲华东和华北也算是“区”,多个区组合在一起提供服务,这就提高了整个服务的容错性,这就是“分区容错性”,所以,在分布式系统中我们会首先想到使用分区的方式提高服务的容错。而系统分区之后就会引发CAP中的A和C的概念了。

C和A

因为对服务或者数据进行了“分区”,这样就会出现数据同步问题,每个数据区之间的数据需要保持一致,这就是所讲的“一致性”,而为了实现一致性有可能会出现很多问题,比如数据量很大,在做数据各个区(节点)的同步的时候有可能因为数据量或者网络问题导致数据半天同步不起来,那么就可能用户在访问的时候发现数据或者整个服务不能用,所以这里所说的C和A其实是一种互斥关系,所以在分布式系统中,P是必须要的,剩下的就是在C(一致性)和A(可用性)间进行取舍。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/583112.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号