分布式系统中的CAP原理和BASE理论
CAP是一致性(Consistency)、可用性(Availability)、分区容忍性(Partition tolerance)的缩写。CAP原理指的是这三个要素最多只能同时实现两点,不可能三者兼顾。因此在进行分布式架构设计时,必须做出取舍。而对于分布式数据系统,分区容忍性是基本要求,否则就失去了价值。因此设计分布式数据系统,就是在一致性和可用性之间取一个平衡。
BASE理论指的是基本可用(Basically Available)、软状态(Soft State)、最终一致性(Eventual Consistency)。BASE理论是对CAP理论的延伸,核心思想是即使无法做到强一致性(Strong Consistency,CAP的一致性就是强一致性),但应用可以采用适合的方式达到最终一致性(Eventual Consitency)
关系数据库的ACID模型拥有高一致性+可用性,符合CAP原理:
·Atomicity原子性:一个事务中所有操作都必须全部完成,要么全部不完成。
·Consistency一致性. 在事务开始或结束时,数据库应该在一致状态。
·Isolation隔离层. 事务将假定只有它自己在操作数据库,彼此不知晓。
·Durability. 一旦事务完成,就不能返回。
BASE模型完全不同于ACID模型,牺牲高一致性,获得可用性或可靠性:
·Basically Available基本可用。支持分区失败(e.g. sharding碎片划分数据库)
·Soft state软状态 状态可以有一段时间不同步,异步。
·Eventually consistent最终一致,最终数据是一致的就可以了,而不是时时高一致。
在分布式系统设计的场景中,系统组件对一致性要求是不同的,因此ACID和BASE又会结合使用
分布式系统中的CAP原理和BASE理论的更多相关文章
- CAP原理和BASE理论
CAP原理 概述 CAP理论的主要场景是在分布式环境下,在单机环境下,基本可不考虑CAP问题. CAP理论就是说在分布式存储系统中,最多只能实现上面的两点.而由于当前的网络硬件肯定会出现延迟丢包等问题 ...
- CAP定理和BASE理论
CAP定理和BASE理论 标签(空格分隔): 操作系统 CAP定理 CAP定理: 一个分布式系统最多只能满足一致性 (Consistency), 可用性(Availability)和分区容错性(Par ...
- CAP原理和BASE思想和ACID模型
问题的解读 对于上面三个例子,相信大家一定看出来了,我们的终端用户在使用不同的计算机产品时对于数据一致性的需求是不一样的: 1.有些系统,既要快速地响应用户,同时还要保证系统的数据对于任意客户端都是真 ...
- 【笔记】CAP原理和BASE思想
摘自http://www.jdon.com/37625 分布式领域CAP理论,Consistency(一致性), 数据一致更新,所有数据变动都是同步的Availability(可用性), 好的响应性能 ...
- [z]CAP原理和BASE思想
分布式领域CAP理论,Consistency(一致性), 数据一致更新,所有数据变动都是同步的Availability(可用性), 好的响应性能Partition tolerance(分区容错性) 可 ...
- CAP原理和BASE思想
分布式领域CAP理论,Consistency(一致性), 数据一致更新,所有数据变动都是同步的Availability(可用性), 好的响应性能Partition tolerance(分区容错性) 可 ...
- CAP原理和BASE思想--GLQ
分布式领域CAP理论,Consistency(一致性), 数据一致更新,所有数据变动都是同步的Availability(可用性), 好的响应性能Partition tolerance(分区容忍性) 可 ...
- 安全风控的CAP原理和BASE思想
CAP原理最多实现两个,需要牺牲一个来满足其他两个:
- CAP定理与BASE理论
1. CAP定理 C:Consistency,一致性 A:Availability,可用性 P:Partition tolerance,分区容错性 CAP定理,指的是在一个分布式系统中,一致性.可用性 ...
随机推荐
- 网络应用软件结构-----CS与BS结构(网络基本知识小结)
1.网络的大致结构 2.网络编程 通过直接或间接地使用网络通讯的协议实现计算机与计算机之间的通讯.在TCP/IP协议层主要麦网络主机的定位,数据传输的路由,由IP地址可以唯一地确定Internet上的 ...
- Ubuntu 安装杀毒软件防火墙
1.打开终端 2.输入sudo apt-get install clamtk 3.按照提示安装 4.安装完成后,输入clamtk 即可. 卸载方法: 1.打开终端 2.输入sudo apt-get a ...
- 使用escape、encodeURI 和 encodeURIComponent 解决url中文乱码问题
escape(), encodeURI()和encodeURIComponent()是在Javascript中用于编码字符串的三个常用的方法,而他们之间的异同却困扰了很多的Javascript初学者, ...
- java 随机颜色
用HSV模型来实现颜色的随机,然后转为RGB模型 色相(H)是色彩的基本属性,就是平常所说的颜色名称,如红色.黄色等. 饱和度(S)是指色彩的纯度,越高色彩越纯,低则逐渐变灰,取0-100%的数值. ...
- EF Core的安装、EF Core与数据库结合
一.新建一个.net core的MVC项目 新建好项目后,不能像以前一样直接在新建项中添加ef, 需要用命令在添加ef的依赖 二.EF Cor ...
- 28.Docker介绍与目录
快速的部署和启动 docker的启动是毫秒级的.一分钟可移动几百个上千个docker的容器 docker和虚拟机的区别 虚拟机在里面独立运行完整的操作系统.资源上时间上都需要多. docker容器级别 ...
- 使用git命令将本地项目上传到GIthub
1.(先进入项目文件夹)通过命令 git init 把这个目录变成git可以管理的仓库 2.把文件添加到版本库中,使用命令 git add .添加到暂存区里面去,不要忘记后面的小数点“.”,意为添加文 ...
- mock api
模客:http://mock-api.com/ easy-mock:https://www.easy-mock.com/ easy-mock动不动就挂了,而且用起来特别卡,不知道为什么那么多人推荐-_ ...
- 洛谷 - P2158 - 仪仗队 - 欧拉函数
https://www.luogu.org/problemnew/show/P2158 好像以前有个妹子收割铲也是欧拉函数. 因为格点直线上的点,dx与dy的gcd相同,画个图就觉得是欧拉函数.但是要 ...
- CTP Release() 的注意问题
测试时发现CThostFtdcMdSpi有个比较严重的问题,就是使用Release()退出清理对象时 会出现死机,并且频率很高,怎样解决? 答:请参考以下代码的释放顺序. template <c ...