写点什么

CAP 原理

用户头像
A p7+
关注
发布于: 2020 年 11 月 01 日

简述

在分布式系统中,最大的难题是如何保证各个节点状态同步。CAP是为解决这个问题,提出来的基本原理。





Consistency(一致性)

一致性是说:当写入数据后,不管读取哪个节点,读取的数据一定是刚写入的数据。如下图。

数据写入G1后,如果保证 G2 的一致性,那么 G1 必须在同步数据时,锁定 G2 的读操作和写操作。只有数据同步后,才能重新开放读写。锁定期间,G2 不能读写。



Availability(可用性)

客户端访问系统,系统必须返回正确的响应结果,而不是返回一个错误或者失去响应。不过,这个响应不需要保证数据是最近写入的。



Partition tolerance(分区容错性)

分区容错指服务器节点之间的网络通信可能失败,但不影响客户端正常使用系统。

例如两系统节点G1和G2,G1向G2发送数据,可能由于网络原因导致G2没收到。这种由于网络原因导致的问题,我们是无法避免的。

我们无法保证网络任意时刻一定可用,因此CAP中的P是一定存在的。



为什么C和A是互斥的?

上面有说到,保证G1向G2同步数据时,G2会被锁定,出现了G2不可用的情况。反过来,如果要所有节点都可用,那么保证不了一致性。



针对 Doris 案例,请用 UML 时序图描述 Doris 临时失效的处理过程(包括判断系统进入临时失效状态,临时失效中的读写过程,失效恢复过程)。



https://www.processon.com/view/link/5f9e267907912948e6e4f9d9





用户头像

A p7+

关注

还未添加个人签名 2020.06.05 加入

还未添加个人简介

评论

发布
暂无评论
CAP原理