首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

CAP理论听起来很高大上,其实很简单

CAP理论听起来很高大上,其实很简单。

一致性(Consistency):保证数据一定是一致的,对的

可用性(Availability):保证系统能用

分区容错性(Partition Tolerance):就算网络出了问题(分区),我也能忍

在分布式系统中,网络是肯定会出问题的,不可避免的,比如服务器挂了,程序挂了,网线被踢掉了,网络超时等等。

各个服务器原来通过网络连接,连成一片,在一个大的区域中,互相之间要同步数据。

现在网络出了问题,各个服务器之间就断了联系,相互之间被隔离了,数据同步不了了,这就形成了分区。

出现了分区,我们也认了,这是网络错误,是无法避免的,所以分区容错性即P,在分布式系统中是一直存在的。

那在P存在的前提下,我们到底是选择保证:数据是对的比较重要呢(CP),还是保证系统能用比较重要呢(AP)?

CP:比如A服务器的数据是要同步给B服务器的,现在网断了,A的数据传不过去了,我觉得保证数据对比较重要,如果A和B的数据对不上,后果很严重。

为了保证A和B服务器的数据一致,干脆让A停止服务好了,直接给客户端返回错误信息,等网络恢复了,再上线,免得A和B的数据不一致。

AP:比如A服务器的数据是要同步给B服务器的,现在网断了,A的数据传不过去了。

我觉得暂时的数据不一致没什么大关系,系统能用最重要,那我就继续让A提供服务,等网络恢复了,再同步数据到B。

CAP的问题就是网络不通的情况下,我们优先保证数据一致,还是优先保证系统可用的问题。

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20201219A0GKQN00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券