图解 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 之间做出选择
不一致的产生
- client 向 Node1 写入新值 v1
- 写入成功 Node1 更新成 v1
- Node1 在没有将变更同步到 Node2 时,就向客户端返回了应答
- client 发起向 Node2 的读操作
- 返回了旧值 v0(不一致)的结果
保证一致性
- client 向 Node1 写入新值 v1
- 写入成功 Node1 更新成 v1,此时不能立刻向 client 返回应答,而是需要将 v1 同步到 Node2
- 同步 v1 成功
- 此时才能向 client 返回应答
- 如果此时 client 再去访问 Node2,不会出现不一致的情况
解决方案
保 CP 失 A
- 当发生了网络分区,Node1 与 Node2 已经失去了联系,这时仍想对外提供服务(保 P)
- client 向 Node1 写入新值 v1
- 写入 Node1 成功,但无法同步至 Node2
- 这时为了保证一致性,Node1 不能向 client 返回应答,造成操作挂起无法完成(失去可用性)
保 AP 失 C
- 当发生了网络分区,Node1 与 Node2 已经失去了联系,这时仍想对外提供服务(保 P)
- client 向 Node1 写入新值 v1
- 写入 Node1 成功,但无法同步至 Node2
- 为了保证可用性,向 client 返回了应答(但牺牲了一致性)
以上是关于图解 CAP 定理(转载)的主要内容,如果未能解决你的问题,请参考以下文章