分布式系统和CAP理论
分类:知识大全作者:互联网王者 发布时间:2016-01-28 21:40:23阅读:8.1万+ 属地:未知
分布是指在一定的区域内,分散着存在一些事物,比如中国分布着很多湖泊,湖中分布着很多小岛,镇里分布着很多工厂等等。在计算机领域,一个分布式系统是一组计算机系统分散在不同的区域,依靠网络相互联系且共同工作的一个系统,但是分布式系统基于网络,因此就出现一些致命的缺陷。
加州理工大学的 Eric Brewer 教授通过研究并提出CAP 理论,并通过理论与实验验证,成为分布式系统设计的指导原则之一,因此CAP理论又被称作布鲁尔定理,指的是在一个分布式系统中,Consistency(一致性)、Availability(可用性)、Partition Tolerance(分区容错性)这三个特性,不能同时成立。
CAP理论首先提出三个基本需求:
一致性 (Consistency):即系统中的所有节点数据需要保持一致
可用性 (Availability):即系统中允许部分节点发生故障,整个系统仍然能够正确运行。
分区容错性 (Partition Tolerance):即系统中允许不同节点之间出现分区问题(网络或系统故障导致通信问题)。
CAP理论表明一个分布式系统无法同时满足以上三个基本需求,最多只能同时满足其中两个需求,另外一个需求必须被牺牲。
在分布式存系统里,P 是必须的,因为P 是必然的发生的,因为网络本身无法做到 100% 可靠,极有可能出故障,所以分区是一个必然的现象。如果不选 P,一旦发生分区错误,整个系统就瘫痪,违背了整个系统必须提供服务的基本要求。因此,分布式系统理论上不可能选择 CA 架构,只能选择 CP 或者 AP 架构,所以,对于分布式系统,我们只能能考虑当发生分区错误时,如何选择一致性和可用性。
CP系统就是一个分布式系统发生分区故障后,无法对客户提供服务,但是系统的每个节点总是保持数据一致,即保证了C。AP系统就是一个系统发生分区故障后,依然可以对客户提供服,但是系统的每个节点获取的数据是不一致的,即保证了A。C通常要求所有节点都能同步数据,即无法满足A,因为满足了A,就满足不了C。A通常要求允许部分节点故障,即无法满足C,因为满足了C,就满足不了A。因此,分布式系统必须在C和A之间做出权衡。
CAP理论指出了建分布式系统的限制,系统架构师需要综合考虑很多因素,结合业务需求,设计出合适的分布式系统。
声明:本文内容版权归原作者所有,未经授权,禁止转载!
声明:本站仅提供内容存储、展示服务,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的虚假信息,谨防诈骗。如发现有害或侵权内容,可联系本站删除!
- 上一篇:杭州“小冰岛”小游
- 下一篇:常见消息队列中间件的区别