第六周作业 1
请简述 CAP 原理
CAP 原理是指在一个分布式系统中,CAP 三个特性不可能同时达到,在分布式系统必须要满足分区耐受性的前提下,要么接受数据不一致,要么接受数据不可用。
C 代表 Consistency (一致性)。每次读取的数据都应该是最近写入的数据或者返回一个错误,而不是过期的数据。也就是说数据是一致的。
A 代表 Availability(可用性)。每次请求都应该得到一个响应,而不是返回一个错误或失去响应。不过这个响应不需要保证数据是最近写入的,也就是说系统需要一直都能正常使用,不会引起调用者异常,但不保证响应的数据是最新的。
P 代表 Partition tolerance(分区耐受性)。即使因为网络原因,部分服务器节点之间消息丢失或者延迟了,系统仍然需要是可以操作的。
对于一个分布式系统,网络失效一定会发生,也就是说分区耐受性是必须要保证的,那么在可用性和一致性上就只能二选一了。
如下图,数据存储的分布式系统,节点 A 和 节点 B 之间,网络通信失败了。
在保障 P(分区耐受性) 的前提下:
如果要保障 A(可用性),那么客户端1更新成功后,节点 A 的数据是99,客户端3更新成功后,节点 B 的数据是 75,那么这时客户端4和客户端2查询的数据却不一样了,没有满足数据的C(一致性);
如果要保障 C(一致性),当客户端1更新成功后,客户端3和客户端4的查询和更新都应该返回失败,没有满足数据的A(可用性)。
版权声明: 本文为 InfoQ 作者【Yangjing】的原创文章。
原文链接:【http://xie.infoq.cn/article/b105df417dd3a26e1e971053f】。文章转载请联系作者。
评论