什么是CAP定理()
CAP定理
CAP定理指的是在一个分布式系统中,一致性(Consistency)、可用性(Availibility)、分区容错性(Partition tolerance)不可能三者都兼顾,最多只能同时实现其中的两点。一致性
一致性是指在分布式系统中,所有的数据备份,在同一个时刻具有相同的值。也就是说,客户端访问所有的节点,同一时刻的数据应当是完全一致的。
可用性
可用性是指客户端访问数据时,系统是否能在正常响应时间内,返回预期的结果。也就是说,不管是成功还是失败,都应该有预期的响应,而不是卡死在那里。
分区容忍性
分区容忍性是指系统中某节点或者网络分区发生故障的时候,不会影响系统的继续运作。也就是说,不能因为一颗老鼠屎而坏了一锅汤。
CAP不可得兼
鱼我所欲也,熊掌亦我所欲也,二者不可得兼,舍鱼而取熊掌者也。CAP是不可能同时实现的,必须去做取舍。
要么实现AP,要么实现CP,要么实现CA。
而在分布式系统中,分区容错性是最为重要的,谁也不能保证这么大个系统不出错不是?
所以一般来说,P是一定要保证的,一般不会考虑使用CA。
那什么时候选择AP,什么时候又选择CP呢?
CAP的取舍 举一个电商网站的例子,当用户下单后,需要在订单系统中新建订单,然后去库存系统中减少库存。
假设订单系统成功新建了订单,而库存系统却没有能够成功减少库存,则会出现超卖的情况,所以需要进行补偿操作。
- 如果选择的是CP,即保证一致性和分区容错性,则订单创建后会一直等待库存系统中的补偿操作完成后,即库存减少后才返回创建订单成功的结果
- 如果选择的是AP,即保证可用性和分区容错性,则订单创建后会直接返回创建订单成功的结果,而不用等待库存系统中的补偿操作完成
CP主要用于银行、金融、证券等对数据一致性要求很高的系统中,比如在线支付之后的转圈圈;
AP主要用于互联网应用中。
参考鸣谢 哔哩哔哩:https://www.bilibili.com/vide...
推荐阅读
- 热闹中的孤独
- 我要做大厨
- 《真与假的困惑》???|《真与假的困惑》??? ——致良知是一种伟大的力量
- 爱就是希望你好好活着
- 太平之莲
- 为什么你的路演总会超时()
- 知识
- 叙述作文
- 时间老了
- 财商智慧课(六)