当前位置:网站首页>分布式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%之间连续变化的,一致性分很多级别,连分区也可以细分为不同含义,如系统内的不同部分对于是否存在分区可以有不一样的认知。
边栏推荐
- 量子力学习题
- 什么是上下文?
- 资深开发人员告诉你,怎样编写出优秀的代码?
- 深入解析结构化异常处理(SEH) - by Matt Pietrek
- Modstartblog modern personal blog system v5.2.0 source code download
- 十字路口通行优先权,十字路口通行规则图解
- 博朗与Virgil Abloh于2021年为纪念博朗品牌100周年而联合打造的“功能性艺术”将在博物馆展出Abloh作品期间首次亮相
- Imitation of "game bird" source code, mobile game issue evaluation, open service, open test collection, game download website template
- What does software testing do? Find defects and improve the quality of software
- 微信公众号无限回调授权系统源码
猜你喜欢

5张图告诉你:同样是职场人,差距怎么这么大?

2020 Bioinformatics | TransformerCPI

RHCSA 04 - 进程管理

*. No main manifest attribute in jar

微信公众号无限回调授权系统源码

UnicodeDecodeError: ‘gbk‘ codec can‘t decode byte 0x98 in position 1093: illegal multibyte sequence

深入解析结构化异常处理(SEH) - by Matt Pietrek

苹果CMS仿西瓜视频大气响应式视频模板源码

Flink学习7:应用程序结构

架构实战营 - 第 6 期 模块九之毕业设计
随机推荐
深入解析结构化异常处理(SEH) - by Matt Pietrek
C language bidirectional linked list first edition
Asynchronous development process - touch your hand and lead you to realize a promise
Graduation project: design seckill e-commerce system
JS实现文字滚动 跑马灯效果
The interactive solution of JS and app in the H5 page embedded in app (parameters can be transferred and callbacks can be made)
RHCSA 01 - 创建分区与文件系统
Flink learning 8: data consistency
Unity 绘制弹球和台球的运动轨迹
Pointer array and array pointer
C语言单向链表练习
[microservice openfeign] @feignclient detailed explanation
ModStartBlog 现代化个人博客系统 v5.2.0 源码下载
leetcode刷题:二叉树07(二叉树的最大深度)
(指針)自己寫一個比較字符串大小的函數,功能與strcmp類似。
Pytest basic self-study series (I)
Flink learning 6: programming model
【愚公系列】2022年7月 Go教学课程 002-Go语言环境安装
Ppt tutorial, how to save a presentation as a PDF file in PowerPoint?
Evolution of MySQL database architecture