DeTechn Blog

CAP 理论的理解

在理论计算机科学中, CAP定理(CAP theorem),⼜被称作布鲁尔定理
Brewer’s theorem),它指出对于⼀个分布式计算系统来说,不可能同时满⾜以下三点:
Consistency(⼀致性)指数据在多个副本之间能够保持⼀致的特性(严格的⼀致性)
Availability(可⽤性)指系统提供的服务必须⼀直处于可⽤的状态,每次请求都能获取到⾮错的响应(不保证
获取的数据为最新数据)
Partition tolerance(分区容错性)分布式系统在遇到任何⽹络分区故障的时候,仍然能够对外提供满⾜⼀致
性和可⽤性的服务,除⾮整个⽹络环境都发⽣了故障
Spring Cloud 在 CAP法则上主要满⾜的是 A和 P法则, Dubbo和 Zookeeper 在 CAP法则主要满⾜的是 C和 P法
则。
CAP仅适⽤于原⼦读写的 NOSQL场景中,并不适合数据库系统。现在的分布式系统具有更多特性⽐如扩展性、可
⽤性等等,在进⾏系统设计和开发时,我们不应该仅仅局限在 CAP问题上。现实⽣活中,⼤部分⼈解释这⼀定律
时,常常简单的表述为: “⼀致性、可⽤性、分区容忍性三者你只能同时达到其中两个,不可能同时达到”。实际上
这是⼀个⾮常具有误导性质的说法,⽽且在 CAP理论诞⽣12 年之后, CAP之⽗也在2012 年重写了之前的论⽂。当
发⽣⽹络分区的时候,如果我们要继续服务,那么强⼀致性和可⽤性只能2 选1。也就是说当⽹络分区之后 P是前
提,决定了 P之后才有 C和 A的选择。也就是说分区容错性(Partition tolerance)我们是必须要实现的。

当前页面是本站的「Google AMP」版。查看和发表评论请点击:完整版 »