0
点赞
收藏
分享

微信扫一扫

CAP


参考: ​​CAP​​

CAP到底是什么?
在理论计算机科学中,CAP定理(CAP theorem),又被称作布鲁尔定理(Brewer’s theorem),它指出对于一个分布式计算系统来说,不可能同时满足以下三点:

  • 一致性(Consistency) (等同于所有节点访问同一份最新的数据副本)
  • 可用性(Availability)(每次请求都能获取到非错的响应——但是不保证获取的数据为最新数据)
  • 分区容错性(Partition tolerance)(以实际效果而言,分区相当于对通信的时限要求。系统如果不能在时限内达成数据一致性,就意味着发生了分区的情况,必须就当前操作在C和A之间做出选择。)

CAP这个听起来很高大上的概念,在分布式系统中,如果选择了可用性(A) + 分区容错性§ , 就要放弃一致性©

如果选在一致性© + 分区容错性§ , 就得放弃可用性(A) , 这种情况下,虽然系统的有些功能是不能使用的, 因为需要等待数据的同步, 但是那些和数据同步无关的功能还是可以访问的 , 相当于系统做了功能的降级。

既然有AP和CP, 会不会出现仅仅是CA(一致性+可用性)这种组合呢?就是没有分区容错性, 只保留可用性和一致性?仔细想想, P(网络分区)其实是不可避免的,是必然存在的,只能在C和A之间做权衡,因为要实现高可用性(A),必然要出现冗余,有了冗余那就很可能会出现网络分区§。 所以P不能通过牺牲A或者C来获得,这一点和漫画中的投资不可能三角不同。 在实际中,大部分也都是AP或者CP的系统,而很少有CA的系统,想要获得P,只有通过增强网络基础设施的稳定性来保证。


举报

相关推荐

0 条评论