分布系统设计CAP理论.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
分布系统设计CAP理论

分布系统设计CAP理论   摘要:CAP理论是横向可扩展分布系统设计的理论基石,对大数据产生的生态环境具有重要意义。文章介绍CAP理论产生背景、核心内容、三中取二原则、BASE模型等内容。   关键词:横向可扩展性;分布系统;CAP理论;三中取二原则;BASE模型;一致性;可用性;分区容错性   0 引言   在计算机科学中,CAP理论又称之为布鲁尔定理(Brewer’S theorem),目前已成为分布式系统设计与构建的重要理论基石。它是加州伯克利分校计算机科学家埃里·布鲁尔(Eric Brewer)在1998年提出一个假说,并在2000年的分布式计算原则研讨会上发表。这个假说是Brewer及其同事在横向可扩展分布系统设计方面多年辛勤劳动的结晶。在2002年,麻省理工学院的赛斯·吉尔伯特(Seth Gilbert)和南希·林奇(Nancy Lynch)又完成了布鲁尔假说的证明,使之脱离了唯像学说而成为一个定理,但吉尔伯特和林奇证明的布鲁尔定理比布鲁尔假说狭义。   1 CAP需求   在分布式的环境下,设计和部署系统时主要考虑下述3个重要的核心系统需求。   ●一致性(Consistency):所有节点在同一时间具有相同的数据。   ●可用性(Availability):保证对于每个请求的成功或者失败都有响应。   ●分区容错性(Partition Tolerance):系统中信息的丢失或失败并不影响系统的运行。   上述3个重要的核心系统需求又简称为CAP需求。   1.1 一致性   在分布式系统中,数据存在多个副本。一致性是指对某数据操作之后,存在各副本中的该数据始终保持一致。通常将这种操作称为一致性操作,一致性操作是原子性的操作,即对数据的操作(增、删、改)结果是对所有数据副本全部成功才算操作成功,否则为失败。如果操作失败,则回退到一致性操作前的状态。   如果一个存储系统能够保证一致性,那么客户读取的数据可以保证是最新的数据,不会发生两个客户端在不同存储节点读取到不同的数据副本。   例1:N1、N1为网络中的两个节点,共享同一数据V,即一个是主本,另一个是副本,其初始值为V0。N1节点上有一个算法A,N2上有一个类似的算法B,利用A算法可以将新值写人V,而利用B算法可以读取V的值??   1)数据保持一致性情况。   (1)A写入新的V值,称作V1。   (2)N1发送信息给N2,更新N2的V值。   (3)B读取N2的V值,读取到的值将是V1。   2)数据出现不一致性情况。   如果网络断开(分区),从N1无法发送信息到N2,那么在第(3)步的时候,N2就会包含一个与N1中的不一致的V值,即在N1中的V=V1,在N2中的V=V0。   1.2 可用性   可用性是指客户端访问数据时,可以得到响应,但系统可用并不代表存储系统的所有节点提供的数据一致。如客户端想要读取文章评论,存储系统可以返回客户端数据,但评论缺少最新的一条。在这种情况下,我们仍然可以说系统可用。往往可对不同的应用设定一个定长响应时间,超过这个定长响应时间的服务认为不可用。可用性只表明服务可用,主要标志是可以完成或不能完成上述操作。如当用户购书时希望得到反馈,而不是看到浏览器报告网站无法连接的信息。   1.3 分区容错性   在分布系统中,为了提高系统性能,可以将同一数据的副本分布地存放在不同地点。分区容错性是指分布系统的容错性。更确切地说,除非网络的全部节点都出现故障,否则所有子集合节点的故障都不能导致整个系统的不正确响应。显然,将数据分布在不同节点上,就有形成分区的风险。如果网线被切断,分区就形成,两节点之间无法进行通信。网络分区是指由于某种原因网络被分成若干个孤立的互不相通区域。分区容错性也可以理解为系统在存在网络分区的情况下仍然可以接受满足一致性或可用性的请求。   2 CAP定理   CAP定理指出:在一个分布式系统构建中,不可能同时满足一致性、可用性和分区容错性三个系统需求,最多只能同时满足两个。对所设计系统的强调点不同,采用的策略也不一样。   分布系统在小规模、低压力、小延迟的情况下,CAP定理还不足以对系统总体性能造成影响,但随着活动增加与吞吐量上升将凸显其重要性。   对大型网站来说,可用性与分区容错性的优先级高于数据一致性,一般放弃一致性,尽量朝着可用性和分区容错性的方向设计,然后通过其他方法来保证一致性的商务需求。架构设计师不要将主要精力用在如何设计能同时满足三者的完美分布式系统,社交SNS网站可以容忍相对较长时间的不一致性,但需要最终一致性。   CAP的证明很简单,假设两个节点集{G1,G2},由于网络分片导致G1和G2之间所有的通讯都断开了,如果在G1中写

文档评论(0)

fangsheke66 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档