CAP理论
程序员文章站
2022-03-22 22:37:16
...
- 概述
2000年Eric Brewer教授提出了著名的CAP理论,即:一个分布式系统不可能满足一致性,可用性和分区容错性这三个需求,最多只能同时满足两个。2002年MIT的Seth Gilbert 和 Nancy lynch两人证明了CAP理论的正确性(原文见这里,译稿见这里)。根据CAP理论,一致性(C),可用性(A),分区容错性(P),三者不可兼得,必须有所取舍。因此系统架构师不要把精力浪费在如何设计才能同时满足CAP三者的完美分布式系统,而是应该研究如何进行取舍,满足实际的业务需求。
- 解释
Consistency(一致性):在分布式系统中的所有数据备份,在同一时刻都有同样的值。/数据一致更新,所有数据变动都是同步的;
Availability(可用性):在集群中一部分节点故障后,集群整体还能响应客户端的读写请求。/每一个操作总是能够在确定的时间内返回,也就是系统随时都是可用的,强调好的响应性能;
Tolerance of network Partitions(分区容错性):集群中的某些节点在无法联系后,集群整体还能继续进行服务。/在出现网络分区(比如断网)的情况下,分离的系统也能正常运行,强调系统的可靠性;
对于分布式存储系统而言,分区容错性(P)是基本需求,因此有CP和AP两种选择。
- CP模式保证分布在网络上不同节点数据的一致性,但对可用性支持不足,这类系统主要有BigTable, HBASE, MongoDB, Redis, MemcacheDB, Berkeley DB等。
- AP模式主要以实现"最终一致性(Eventual Consistency)"来确保可用性和分区容忍性,但弱化了数据一致性要求,典型系统包括Dynamo, Tokyo Cabinet, Cassandra, CouchDB, SimpleDB等。
上一篇: 转载一篇CAP理论的文章 CAP