分布式系统的CAP理论是什么 分布式系统CAP特性如何取舍

本文章由注册用户 知无涯 上传提供 2023-11-30 评论 发布 纠错/删除 版权声明 0
摘要:分布式系统的CAP理论是指一个分布式系统不可能同时满足数据一致性、服务可用性和分区容错性这三个基本需求,最多只能同时满足其中的两个,这一理论深刻影响着分布式系统的发展,在实际应用中,分布式系统会根据需求舍弃其中一个特性,大多数都是牺牲了一致性。下面一起来了解一下分布式系统的CAP理论是什么以及分布式系统CAP特性如何取舍吧。

一、分布式系统的CAP理论是什么

分布式系统的构建有一个重要理论——CAP理论,这一理论的出现深刻影响着分布式系统的发展和设计,那么什么是CAP理论呢?

CAP理论是加州理工大学伯克利分校的Eric Brewer教授在2000年7月的ACMPODC会议上首次提出的,它是Eric Brewer在Inktomi期间研发搜索引擎、分布式Web缓存时得出的关于数据一致性(C:Consistency)、服务可用性(A:Availability)、分区容错性(P:Partition-tolerance)的一个猜想。

在这个猜想提出的2年以后,来自麻省理工学院的Seth Gilbert和Nancy Lynch从理论上证明了Eric Brewer教授的CAP猜想是成立的,从此,CAP理论在学术上正式成为了分布式领域公认的定理,并深刻影响着分布式系统的发展。

CAP理论告诉我们, 一个分布式系统不可能同时满足数据一致性、服务可用性和分区容错性这三个基本需求,最多只能同时满足其中的两个。

二、分布式系统CAP特性如何取舍

分布式系统的CAP理论告诉我们,分布式系统只能满足CAP中的两个需求,那么舍弃哪一个比较好呢?

1、满足CA舍弃P,也就是满足一致性和可用性,舍弃容错性。但是这也就意味着你的系统不是分布式的了,因为涉及分布式的想法就是把功能分开,部署到不同的机器上。

2、满足CP舍弃A,也就是满足一致性和容错性,舍弃可用性。如果你的系统允许有段时间的访问失效等问题,这个是可以满足的。就好比多个人并发买票,后台网络出现故障,你买的时候系统就崩溃了。

3、满足AP舍弃C,也就是满足可用性和容错性,舍弃一致性。这也就是意味着你的系统在并发访问的时候可能会出现数据不一致的情况。

实时证明,大多数都是牺牲了一致性:就好比是你买火车票,本来你看到的是还有一张票,其实在这个时刻已经被买走了,你填好了信息准备买的时候发现系统提示你没票了,这就是牺牲了一致性。

但是不是说牺牲一致性一定是最好的,就好比张三给李四转了100块钱,这时候必须保证张三的账户上少了100,李四的账户多了100,因此需要数据的一致性,而且什么时候转钱都可以,也需要可用性,但是转钱失败是可以允许的,即可以舍弃容错性。

网站提醒和声明
本站为注册用户提供信息存储空间服务,非“MAIGOO编辑”、“MAIGOO榜单研究员”、“MAIGOO文章编辑员”上传提供的文章/文字均是注册用户自主发布上传,不代表本站观点,版权归原作者所有,如有侵权、虚假信息、错误信息或任何问题,请及时联系我们,我们将在第一时间删除或更正。 申请删除>> 纠错>> 投诉侵权>> 网页上相关信息的知识产权归网站方所有(包括但不限于文字、图片、图表、著作权、商标权、为用户提供的商业信息等),非经许可不得抄袭或使用。
提交说明: 快速提交发布>> 查看提交帮助>> 注册登录>>
您还未登录,依《网络安全法》相关要求,请您登录账户后再提交发布信息。点击登录>>如您还未注册,可点击注册>>,感谢您的理解及支持!
最新评论
暂无评论
相关推荐
分布式系统品牌大全 分布式系统知名品牌推荐【品牌库】
分布式系统品牌大全【品牌库】,为你提供分布式系统行业的绝大部份出名的品牌收录展示,如果你想了解分布式系统有哪些品牌,分布式系统哪些品牌比较出...
MAIGOO原创 分布式系统 影音娱乐
112 1
分布式管理系统的市场前景怎么样 分布式系统的发展趋势分析
分布式系统具有高性能、低能耗、易扩展等优势,在指挥中心、物联网、医疗保健等多个领域有着广泛的应用,整体来看应用场景是比较广阔的,未来随着技术...
如何判别分布式系统的优劣 判断分布式管控系统优劣的七大标准
分布式系统在各行各业的应用越来越广泛,市面上的分布式系统产品也比较多,主要可以通过看核心技术、看功能覆盖、看画面还原度、看大屏同步性、看坐席...
分布式系统的CAP理论是什么 分布式系统CAP特性如何取舍
分布式系统的CAP理论是指一个分布式系统不可能同时满足数据一致性、服务可用性和分区容错性这三个基本需求,最多只能同时满足其中的两个,这一理论...
分布式系统的技术栈分析 分布式管理系统常用技术和应用场景
分布式系统是一种复杂的系统,应用过程中会衍生出很多分布式需求,为了应对这些需求,分布式系统的技术栈主要有分布式通信技术、分布式资源管理和负载...