首先我们需要了解一下什么是CAP原则,C代表一致性,A代表高可用,P代表分区容错性,简单地来说CAP原则就是最多只能满足两个。鱼和熊掌不能兼得。那么为什么会造就成这样的情况呢?下面且听子月娓娓道来。
首先我们就可以知道最多可以有三种组合方式,CA CP AP 直接上图 简单粗暴
那么为什么能顺带着再满足P分区容错性呢?大家设想一下在一个业务下有两个集群,一个在上海,一个在北京。当满足了CA的时候,要想再满足分区容错性,那么必须要解决掉高可用下的异地数据同步问题,对吧,现代的技术满足不了这个问题,那么在理论上加上P势必会和C或者A起冲突。这不就矛盾了吗?
CP 这个就是只能符合一致性,和分区容错性。其实我们举一反三就可以明白,当理论上加上A(高可用)的话,那么就会和P或者C起冲突。
AP 这个就是只能符合高可用和分区容错性。
当然了,具体业务具体分析,比如银行的业务,我们可以选择CP,可以适当地牺牲A,宁可让使用人员多等一会,也不能让数据出错。比如有一个积分活动,五千积分可以换一个棒棒糖,我们就可以选择AP,这个时候数据的一致性也就显得不那么重要了。
这里子月突然想起了老师之前讲过的一个很厉害的知识那就是我们学编程的或者有关计算机专业的,我们学的技术都体现在哪里呢?
其实体现在三点 可以统称为 计算 存储 IO
当今的计算机 计算能力要突破上限 存储能力要突破上限 IO并发要突破上限 ,其实万变不离其宗,CAP原则的理解也可以用这个来解释,为什么只能三选二呢?那就可以从这三个问题上找原因,而且技术需要发展。不管是什么第三方的组件呀,还是什么消息中间件呀,还是其他技术,都是围绕着这三个问题来的,比如子月之前写到的redis那这个就是为了解决IO并发瓶颈的问题。
相信在不久的未来这三个问题将会得到极大的解决。大家一起努力吧!ヾ(◍°∇°◍)ノ゙