码迷,mamicode.com
首页 > 其他好文 > 详细

CAP拾遗

时间:2019-11-18 13:20:32      阅读:60      评论:0      收藏:0      [点我收藏+]

标签:共享   图片   enc   关注   必须   block   img   类型   职责   

概念

在一个分布式系统(指互相连接并共享数据的节点的集合)中,当涉及读写操作时,只能保证一致性、可用性、分区容错性三者中的两个,另外一个必须被牺牲

  • Consistency
    对某个指定的客户端来说,读操作保证能够返回最新的写操作结果
  • Availaility
    非故障的节点在合理的时间内返回合理的响应(不是错误和超时的响应)
  • Partition Tolerance
    当出现网络分区后,系统能够继续“履行职责”
    网络分区是指因为网络故障导致网络不连通,不同节点分布在不同的子网络,各个子网络内网正常

选择

在分布式系统中,网络分区不可避免,因此分区容错性P必须满足。

  • CP
    为保证一致性,当发生分区现象后,N1节点的数据更新到y,但由于N1、N2之间的复制通道中断,N2无法同步最新的数据,当客户访问N2时,N2需要返回Error。
    技术图片

  • AP
    为保证可用性,当发生分区现象后,N1和N2的数据并不同步,当客户C访问N2时,将旧数据返回了。注意:这里N2节点返回x,虽然不是一个“正确”的结果,但是一个“合理”的结果。
    技术图片

技术图片

拾遗

  • CAP关注的粒度是数据,而不是整个系统
    每个系统不可能只有一种数据类型,有的数据必须选择CP,有的数据必须选择AP,如果只从整个系统的角度去考虑,只会出现顾此失彼的问题

  • 正常运行情况下,不存在CP和AP的,可以同时满足CA
    既要考虑分区发生时选择CP还是AP,也要考虑分区没有发生时如何保证CA

  • 牺牲并不等于什么都不做,需要为分区恢复后做准备

CAP拾遗

标签:共享   图片   enc   关注   必须   block   img   类型   职责   

原文地址:https://www.cnblogs.com/yeni/p/11881339.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!