写点什么

【架构师第 6 周作业】CAP 原理

用户头像
浪浪
关注
发布于: 2020 年 07 月 15 日

一句话总结:

在一个分布式系统中,一致性(C)、可用性(A)、分区耐受性(P)三个条件无法同时满足。

解析:

分区耐受性

保证数据可持久存储,在各种情况下都不会出现数据丢失的问题。为了实现数据的持久性,不但需要在写入的时候保证数据能够持久存储,还需要能够将数据备份一个或多个副本,存放在不同的物理设备上,防止某个存储设备发生故障时,数据不会丢失。

数据一致性

在数据有多份副本的情况下,如果网络、服务器、软件出现了故障,会导致部分副本写入失败。这就造成了多个副本之间的数据不一致,数据内容冲突。

数据可用性

多个副本分别存储于不同的物理设备的情况下,如果某个设备损坏,就需要从另一个数据存储设备上访问数据。如果这个过程不能很快完成,或者在完成的过程中需要停止终端用户访问数据,那么在切换存储设备的这段时间内,数据就是不可访问的。



在现实中,分布式系统对于分区容错性是必须的,所以通常是在一致性和可用性之间做权衡。例如ZooKeeper就为了保证一致性而牺牲了一定的可用性。而SpringCloud的注册中心Eureka则是为了保证可用性,牺牲了一定的一致性,也就是说在一个时间点,访问集群中不同节点可能获取到不同的结果。

这种取舍,需要根据集群的实际特点去权衡。



用户头像

浪浪

关注

还未添加个人签名 2020.04.28 加入

还未添加个人简介

评论

发布
暂无评论
【架构师第6周作业】CAP原理