欢迎您访问365答案网,请分享给你的朋友!
生活常识 学习资料

CAP定理以及如何选择CP还是AP

时间:2023-06-16
CAP定理

CAP 定理,又被叫作布鲁尔定理。对于设计分布式系统(不仅仅是分布式事务)的架构师来说,CAP 就是你的入门理论。

分布式系统(distributed system)正变得越来越重要,大型网站几乎都是分布式的。

分布式系统的最大难点,就是各个节点的状态如何同步。CAP 定理是这方面的基本定理,也是理解分布式系统的起点。

C(一致性Consistency):

指数据在多个副本之间能够保持一致的特性(严格的一致性)在分布式系统中的所有数据备份,在同一时刻是否同样的值。(所有节点在同一时间具有相同的数据)

一致性(Consistency)是指多副本(Replications)问题中的数据一致性。可以分为强一致性与弱一致性。

强一致性

简言之,在任意时刻,所有节点中的数据是一样的

例如,对于关系型数据库,要求更新过的数据能被后续的访问都能看到,这是强一致性。

弱一致性

数据更新后,如果能容忍后续的访问只能访问到部分或者全部访问不到,则是弱一致性。最终一致性就属于弱一致性。

A (可用性Availability)

指系统提供的服务必须一直处于可用的状态,每次只要收到用户的请求,服务器就必须给出响应。在合理的时间内返回 合理的响应(不是错误和超时的响应)只有非故障节点才能满足业务正常;只有在合理的时间内,用户才能接受;只有 返回合理的响应,用户才能接受。

P (网络分区容错性Partition tolerance)

网络节点之间无法通信的情况下,节点被隔离,产生了网络分区, 整个系统仍然是可以保证对外提供满足一致性和可用性的服务,除非是整个网络环境都发生了故障

什么是分区?

在分布式系统中,不同的节点分布在不同的子网络中,由于一些特殊的原因,这些子节点之间出现了网络不通的状态, 但他们的内部子网络是正常的。从而导致了整个系统的环境被切分成了若干个孤立的区域。这就是分区。

结论

CAP原则的精髓就是要么AP,要么CP,要么AC,但是不存在CAP。

开发选择

追求CP: 用户请求支付,等待支付订单生成以及库存系统数据更新,再给用户返回结果 追求强一致性 缺点:用户体验差

追求AP: 用户请求支付,立即给用户响应结果,异步处理库存系统 放弃强一致性,采用最终一致性

Copyright © 2016-2020 www.365daan.com All Rights Reserved. 365答案网 版权所有 备案号:

部分内容来自互联网,版权归原作者所有,如有冒犯请联系我们,我们将在三个工作时内妥善处理。