当前位置:网站首页>分布式CAP理论
分布式CAP理论
2022-07-04 03:53:00 【InfoQ】
CAP 理论简介

CAP 三选二
一致性 (Consistency): 一个写操作返回成功,那么之后的读请求都必须读到这个新数据;如果返回失败,那么所有读操作都不能读到这个数据。所有节点访问同一份最新的数据。
可用性 (Availability): 对数据更新具备高可用性,请求能够及时处理,不会一直等待,即使出现节点失效。
分区容错性 (Partition tolerance): 能容忍网络分区,在网络断开的情况下,被分隔的节点仍能正常对外提供服务。
对CAP理论的理解
- 如果允许其中一个副本更新,则会导致数据不一致,即丧失了C性质。
- 如果为了保证一致性,将分区某一侧的副本设置为不可用,那么又丧失了A性质。
- 除非两个副本可以互相通信,才能既保证C又保证A,这又会导致丧失P性质。
CAP理论深入理解
- 首先,由于分区很少发生,那么在系统不存在分区的情况下没什么理由牺牲C或A。
- 其次,C与A之间的取舍可以在同一系统内以非常细小的粒度反复发生,而每一次的决策可能因为具体的操作,乃至因为牵涉到特定的数据或用户而有所不同。
- 最后,这三种性质都可以在程度上衡量,并不是非黑即白的有或无。可用性显然是在0%到100%之间连续变化的,一致性分很多级别,连分区也可以细分为不同含义,如系统内的不同部分对于是否存在分区可以有不一样的认知。
边栏推荐
- 架构训练毕业设计+总结
- (指針)自己寫一個比較字符串大小的函數,功能與strcmp類似。
- Redis:集合Set类型数据的操作命令
- 深入解析结构化异常处理(SEH) - by Matt Pietrek
- Katalon uses script to query list size
- Leetcode skimming: binary tree 08 (maximum depth of n-ary tree)
- 【愚公系列】2022年7月 Go教学课程 002-Go语言环境安装
- The difference between bagging and boosting in machine learning
- Wechat brain competition answer applet_ Support the flow main belt with the latest question bank file
- Configuration and hot update of nocturnal simulator in hbuildx
猜你喜欢
随机推荐
Lnk2038 detected a mismatch of "runtimelibrary": the value "md_dynamicrelease" does not match the value "mdd_dynamicdebug" (in main.obj)
架构训练毕业设计+总结
仿《游戏鸟》源码 手游发号评测开服开测合集专区游戏下载网站模板
Pytest basic self-study series (I)
Flink learning 6: programming model
Flink学习8:数据的一致性
R语言dplyr中的Select函数变量列名
R语言中如何查看已安装的R包
dried food! Generation of rare samples based on GaN
毕业设计项目
【微服务|openfeign】使用openfeign远程调用文件上传接口
RHCSA 08 - automount配置
【微服务|openfeign】@FeignClient详解
UnicodeDecodeError: ‘gbk‘ codec can‘t decode byte 0x98 in position 1093: illegal multibyte sequence
Katalon uses script to query list size
leetcode 121 Best Time to Buy and Sell Stock 买卖股票的最佳时机(简单)
Keysight N9320B射频频谱分析仪解决轮胎压力监测方案
2020 Bioinformatics | TransformerCPI
I.MX6U-ALPHA开发板(C语言版本LED驱动实验)
Leader: who uses redis expired monitoring to close orders and get out of here!








