个人随笔
目录
20240606架构学习: 什么是CAP定理
2024-06-06 22:29:14

定理说明

CAP 原则又称 CAP 定理,指的是在一个分布式系统中, Consistency(一致性)、 Availability
(可用性)、Partition tolerance(分区容错性),三者不可得兼.

Partition tolerance(分区容错性):是在分布式系统中,如果某些节点因为故障不能通信了,系统是否还能正常工作,若能表示容忍程度高。

首先只有分布式系统才有P的概念,若是单体架构,那肯定是CA强一致性和可用性。

CP的意思是,我们分布式系统只能接受一致性,比如库存系统和订单系统两个分区,用户下单,必须等库存扣完有返回结果了才算成功,此时用户在页面里是卡住等待的状态。

AP的意思是,我们系统可用性最重要,可以接受最终一致性,比如下单马上成功,后台异步(消息队列等)扣减库存即可。

那为什么CAP不可能同时出现呢?

当你一个数据项只在一个节点中保存,那么分区出现后,和这个节点不连通的部分就访问不到这个数据了。这时分区就是无法容忍的。提高分区容忍性的办法就是一个数据项复制到多个节点上,那么出现分区之后,这一数据项就可能分布到各个区里。容忍性就提高了。然而,要把数据复制到多个节点,就会带来一致性的问题,就是多个节点上面的数据可能是不一致的。要保证一致,每次写操作就都要等待全部节点写成功,而这等待又会带来可用性的问题。总的来说就是,数据存在的节点越多,分区容忍性越高,但要复制更新的数据就越多,一致性就越难保证。为了保证一致性,更新所有节点数据所需要的时间就越长,可用性就会降低。

使用场景

正常银行这些系统都必须保证强一致性,也就是CP,而互联网可以接受最终一致性来保证可用性AP。

 9

啊!这个可能是世界上最丑的留言输入框功能~


当然,也是最丑的留言列表

有疑问发邮件到 : suibibk@qq.com 侵权立删
Copyright : 个人随笔   备案号 : 粤ICP备18099399号-2