cap是什么意思,cap定理详解

CAP原则又称CAP定理,是指在分布式系统中,一致性、可用性、分区容错三者不相容。

1998年,加利福尼亚大学的计算机科学家Eric Brewer提出分布式系统有三个指标。

Consistency(一致性):所有节点上的数据始终保持同步,一致性高;Availability(可用性):每个请求都可以接收响应,而不管返回的数据是否匹配;Partition tolerance(分区容错性):系统应该能够在节点或网络分区出现故障时继续提供服务。 第一个字母分别是c、a、p。

埃里克布鲁尔说,这三个指标不能同时达到。 这个结论称为CAP定理。

下面分别讲述下这三个概念:

1.分区容错性

对于单点系统,分布式系统位于多台计算机上,计算机之间可能跨越区域。 例如,服务器机房在北京一个,上海一个。 在这两个机房之间构建分布式系统时,分区容错p是设计分布式系统时必须考虑的问题,因为这两个区域的计算机需要通信,并且只有通信才能成功进行通信。

2.一致性

一致性是指,即使客户端从分布式系统获取数据并从该计算机获取数据,也必须是最新的。

假设客户端在某个时间点向服务器1更新vo-v1后,无论是从服务器1取值还是从服务器2取值都是v1,则保持一致性。 cleint将数据写入server1后,即使从server2获取值,如果server1和server2之间没有同步,则仍获取vo,无法获得一致性。

3.可用性

可用性意味着无论客户端向哪个服务器发送请求,获取的数据是v0还是v1,客户端都可以随时响应。

一致性和可用性之间的矛盾

由于分区容错p的必然性,一致性c和可用性a不能同时成立。

为了保证服务器2的一致性,服务器1必须在写入过程中锁定服务器2的读取和写入。 在数据同步之前,不能重新开始读写。 在锁定期间,服务器2无法读写,因此无法满足可用性。

如果保证服务器2的可用性,则无法锁定服务器2,因此一致性不成立。

综上所述,Server2 无法同时做到一致性和可用性。系统设计时只能选择一个目标。如果追求强一致性,那么无法保证所有节点的可用性;如果追求所有节点的可用性,那就没法做到强一致性。

参考:

33558 www.Ruan Yifeng.com/blog/2018/07/cap.html

————正文谢谢您阅读

Published by

风君子

独自遨游何稽首 揭天掀地慰生平

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注