CAP到底是什么鬼?

CAP到底是什么鬼?

CAP理论

 在分布式系统中 CAP不能三点同时满足

 Consistence:在分布式环境中,【一致性】指的是多个副本之间是否能够保持一致的特性。在一致性的需求下,当一个系统再数据一致的状态下执行
    更新操作后,应该保证系统数据仍然处于一致的状态
 Availability:【可用性】是指系统提供的服务必须一直处于可用的状态,对于用户的每一个操作请求总是能够在有限的时间内返回结果、
 Partition tolerance:【分区容错性】分布式系统再遇到任何网络分区故障的时候,仍然需要能够保证对外提供满足一致性和可用性的服务,除非是整个网络环境都发生故障了。

解释CAP原理

只能满足CA不能满足P的理解
    异地DB,保证C需要双写,如果双写? DB_0同步到DB_1的过程网络有问题,则一直挂起,A不满足。单台DB满足CA 但是不满足P
  
只能满足AP不能满足C的理解
    异地DB,master写成功(异步复制到slve) 满足AP 不满足C
    
 只能满足CP不能满足A的理解
    异地DB,保证CP,必须同步双写, DB_0同步到DB_1的过程网络有问题,则一直挂起,A不满足

------------------------------------------------------------------------------------------------------------
当然在目前海量数据面前,往往会舍弃C,而保证AP,对与数据的一致性,只要求最终一致即可,在过程中是会出现差异的状况,比如在不同
地方的人对某个新闻或者商品进行评论,在一定时刻内是不需要实时显示出来的,只要保证最终会出现即可。

加深理解

CAP到底是什么鬼?_第1张图片
应用分区读取同一个数据库实例.png
 如何理解这种分布式应用部署架构 ?
 
 1、db异步写备库   AP的设计
    异步复制  其实这一点是牺牲了C的。 
 
 2、db同步写备库   CP的设计
    同步写 如果是同步写的话,如果IDC机房挂掉,我们是敢直接吧流量全部切到IDC2的,备库升级为主库

蚂蚁金服OceanBase 据说已经打破CAP??

      蚂蚁金服的OceanBase据我目前的学习了解(20181128,据说打破了CAP原理的设计) oceanbase是基于多副本存储的一个
  分布式数据库,其实部署要求最近的两个机房专线网络延迟低于10ms【其实就是CP的设计,网络基础设施的支持减少了网络分区
  出错的概率,A也变得相对可靠】
about ME

雨人

你可能感兴趣的:(CAP到底是什么鬼?)