图解 CAP 定理(转载)

Posted 流楚丶格念

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了图解 CAP 定理(转载)相关的知识,希望对你有一定的参考价值。

文章目录

CAP 定理

  • Consistency 一致性:访问分布式系统中任意节点,总能返回一致的结果
    Every read receives the most recent write or an error
  • Availability 可用性:分布式系统总能向客户端返回响应
    Every request receives a (non-error) response, without the guarantee that it contains the most recent write
  • Partition tolerance 分区容忍:当分布式系统节点间通信发生了消息丢失或消息延迟,仍然允许系统继续运行
    The system continues to operate despite an arbitrary number of messages being dropped (or delayed) by the network between nodes

CAP 定理:最多三选二,无法兼得,通常在 CP 或者 AP 之间做出选择

不一致的产生

  1. client 向 Node1 写入新值 v1

  1. 写入成功 Node1 更新成 v1

  1. Node1 在没有将变更同步到 Node2 时,就向客户端返回了应答

  1. client 发起向 Node2 的读操作

  1. 返回了旧值 v0(不一致)的结果

保证一致性

  1. client 向 Node1 写入新值 v1

  1. 写入成功 Node1 更新成 v1,此时不能立刻向 client 返回应答,而是需要将 v1 同步到 Node2

  1. 同步 v1 成功

  1. 此时才能向 client 返回应答

  1. 如果此时 client 再去访问 Node2,不会出现不一致的情况

解决方案

保 CP 失 A

  1. 当发生了网络分区,Node1 与 Node2 已经失去了联系,这时仍想对外提供服务(保 P)

  1. client 向 Node1 写入新值 v1

  1. 写入 Node1 成功,但无法同步至 Node2

  1. 这时为了保证一致性,Node1 不能向 client 返回应答,造成操作挂起无法完成(失去可用性)

保 AP 失 C

  1. 当发生了网络分区,Node1 与 Node2 已经失去了联系,这时仍想对外提供服务(保 P)

  1. client 向 Node1 写入新值 v1

  1. 写入 Node1 成功,但无法同步至 Node2

  1. 为了保证可用性,向 client 返回了应答(但牺牲了一致性)

以上是关于图解 CAP 定理(转载)的主要内容,如果未能解决你的问题,请参考以下文章

图解 CAP 理论

图解 CAP 理论

后端技能树修炼:CAP 定理

分布式之什么是CAP定理

CAP BASE ACID

CAP BASE ACID