浅谈cap

cap:c(consistency)一致性

         a(availability)可用性

         p(patition tolerance) 分区容错性

两个系统a,b

满足c:当a修改数据,b去读a,要两边数据相同,才能保持一致。

满足a:a,b都可被访问,可用性

满足p:系统a,b都是网络分区中某个区网络故障,依然保证系统可用。

 

cap定理:一个分布式系统,最多满足一致性,可用性,分取容错性的两项

 

这里要说清楚为什么只能满足其二?

当网络发生故障,a向b同步数据的时候,就会失败,就是没办法保证p.

当保证p,a系统改了某个数据,要b系统访问到数据是修改后的数据时,才能保证c,这样在同步期间,任何人不能访问不然就没办法保证数据一致,这个时候最多满足cp,因为b此时不可用

当保证p,a系统改了某个数据,要b系统访问到数据是修改后的数据时,单如果此时要强制b可以访问,就保证了ap,但是数据可能没同步过来,不能保证c

 

 

base理论是什么?

由于理论中c,a无法同时兼得,ebay架构师提出base理论,通过牺牲数据的强一致性,来保证系统可用。

 

 

dubbo使用zk作为注册中心,保证的是一致性和分区容错,保证的是cp。

springcloud使用Eureka作为注册中心,保证的是可用性,保证的ap。

 

posted @   雪域飞魂  阅读(57)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· winform 绘制太阳,地球,月球 运作规律
· 上周热点回顾(3.3-3.9)
点击右上角即可分享
微信分享提示