详解CAP理论

背景

CAP理论在1998年首次被提出,1999年被发表为文章,2000年Brewer在PODC大会演说时将CAP作为假设,2002年才被证明为定理。CAP定理属于理论计算机科学中的内容。

定义

一个分布式系统最多只能同时满足 一致性(Consistency),可用性(Availability)和分区容错性(Partition tolerance)这三项中的两项。

这里写图片描述

解读

CAP的定义如下:

Guarantees Definition
Consistency Every read receives the most recent write or an error
Availability Every request receives a response, without guarantee that it contains the most recent version of the information
Partition tolerance The system continues to operate despite an arbitrary number of messages being dropped by the network between nodes

理解CAP,要先记住它的对象,是分布式系统

一致性(Consistency)

一致性(Consistency),说的是每一个更新成功后,分布式系统中的所有节点,都能读到最新的信息。即所有节点相当于访问同一份内容,这样的系统就被认为是强一致性的。

可用性(Availability)

可用性(Availability),是每一个请求,都能得到响应。请求只需要在一定时间内返回即可,结果可以是成功或者失败,也不需要确保返回的是最新版本的信息。

分区容错性(Partition tolerance)

分区容错性(Partition tolerance),是说在网络中断,消息丢失的情况下,系统照样能够工作。这里的网络分区是指由于某种原因,网络被分成若干个孤立的区域,而区域之间互不相通。

这里可以初亏出,如果要满足P,就很难同时满足C和A。

CAP权衡

例1

对于互联网应用,主机多,数据大,部署分散。所以节点故障,网络故障是常态。这种情况下,要保证A和P。舍弃C虽然会影响客户体验,但保证AP,才能不影响用户使用流程。

例2

对于金融领域,必须要保证C和A,舍弃P。所以金融领域的网络设备故障,可能会造成用户无法使用。

参考

posted on 2017-12-03 22:04  ybdesire  阅读(567)  评论(0编辑  收藏  举报

导航