您的位置:首页 > 其它

分布式系统之CAP理论学习

2016-08-02 01:03 351 查看
1.CAP理论的内容和由来
CAP原本是一个猜想,2000年PODC大会的时候大牛Brewer提出的,他认为在设计一个大规模可扩放的网络服务时候会遇到三个特性:一致性(consistency)、可用性(Availability)、分区容错(partition-tolerance)都需要的情景,然而这是不可能都实现的。之后在2003年的时候,Mit的Gilbert和Lynch就正式的证明了这三个特征确实是不可以兼得的。从此,CAP理论正式地在学术上成为了分布式计算领域的公认定理,并深深地影响了分布式计算的发展。
CAP定律说的是在一个分布式计算机系统中,一致性,可用性和分区容错性这三种保证无法同时得到满足,最多满足两个。

2.CAP理论拆解
(1)一致性
系统在执行过某项操作后仍然处于一致的状态。在分布式系统中,更新操作执行成功后所有的用户都应该读到最新的值,这样的系统被认为是具有强一致性的。 等同于所有节点访问同一份最新的数据副本。
(2)可用性
每一个操作总是能够在一定的时间内返回结果,这里需要注意的是"一定时间内"和"返回结果"。一定时间指的是,在可以容忍的范围内返回结果,结果可以是成功或者失败。
(3)分区容错性
首先说下网络分区的概念。网络分区是指由于某种原因,网络被分成若干个孤立的区域,而区域之间互不相通。还有一些人将分区容错性理解为系统对节点动态加入和离开的能力,因为节点的加入和离开可以认为是集群内部的网络分区。
分区容错性的意思是说,在网络中断,消息丢失的情况下,分布式系统被分割成多个子系统,那就要求系统照样能够工作。网络分区发生时,为了保证分区容错性,就需要在一致性和可用性之间做取舍。比如,我们要保证一致性,那由于分区间通信时延或失败,会导致一部分请求失败。若我们保证可用性,那么我们需要在分区内完成业务逻辑,及时返回给用户可用的结果,那此时各个分区间的数据一致性就有问题了。



3.关于分区的一点补充



学习资料参考于: http://www.cnblogs.com/hxsyl/p/4381980.html http://www.infoq.com/cn/articles/cap-twelve-years-later-how-the-rules-have-changed/
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: