redis学习之——CAP原理CAP+BASE
Remote Dictionary Server
分布式系统
分布式系统(distributed system)
由多台计算机和通信的软件组件通过计算机网络连接(本地网络或广域网)组成。分布式系统是建立在网络之上的软件系统。正是因为软件的特性,所以分布式系统具有高度的内聚性和透明性。因此,网络和分布式系统之间的区别更多的在于高层软件(特别是操作系统),而不是硬件。分布式系统可以应用在在不同的平台上如:Pc、工作站、局域网和广域网上等。
传统关系型数据库事务的ACID:
传统关系型数据库的事务遵循ACID
规则事务在英文中是transaction,和现实世界中的交易很类似,它有如下四个特性:
1、A (Atomicity) 原子性
原子性很容易理解,也就是说事务里的所有操作要么全部做完,要么都不做,事务成功的条件是事务里的所有操作都成功,只要有一个操作失败,整个事务就失败,需要回滚。比如银行转账,从A账户转100元至B账户,分为两个步骤:1)从A账户取100元;2)存入100元至B账户。这两步要么一起完成,要么一起不完成,如果只完成第一步,第二步失败,钱会莫名其妙少了100元。
2、C (Consistency) 一致性
一致性也比较容易理解,也就是说数据库要一直处于一致的状态,事务的运行不会改变数据库原本的一致性约束。(个人感觉其实与能量守恒比较契合)
3、I (Isolation) 独立性
所谓的独立性是指并发的事务之间不会互相影响,如果一个事务要访问的数据正在被另外一个事务修改,只要另外一个事务未提交,它所访问的数据就不受未提交事务的影响。比如现有有个交易是从A账户转100元至B账户,在这个交易还未完成的情况下,如果此时B查询自己的账户,是看不到新增加的100元的
4、D (Durability) 持久性
持久性是指一旦事务提交后,它所做的修改将会永久的保存在数据库上,即使出现宕机也不会丢失。
CAP概念:
CAP理论就是说在分布式存储系统中,最多只能实现上面的两点。而由于当前的网络硬件肯定会出现延迟丢包等问题,所以
分布容错性是我们必须需要实现的。
所以我们只能在一致性和可用性之间进行权衡,没有NoSQL系统能同时保证这三点。
=======================================================================================================================
C:强一致性 A:高可用性 P:分布式容错性
CA 传统Oracle数据库
AP 大多数网站架构的选择
CP Redis、Mongodb
注意:分布式架构的时候必须做出取舍。
一致性和可用性之间取一个平衡。多余大多数web应用,其实并不需要强一致性。
因此牺牲C换取P,这是目前分布式数据库产品的方向
=======================================================================================================================
CAP理论的核心是:一个分布式系统不可能同时很好的满足一致性,可用性和分布容错性这三个需求,
最多只能同时较好的满足两个。
因此,根据 CAP 原理将 NoSQL 数据库分成了满足 CA 原则、满足 CP 原则和满足 AP 原则三 大类:
CA - 单点集群,满足一致性,可用性的系统,通常在可扩展性上不太强大。
CP - 满足一致性,分布容错性的系统,通常性能不是特别高。
AP - 满足可用性,分布容错性的系统,通常可能对一致性要求低一些。
BASE就是为了解决关系数据库强一致性引起的问题而引起的可用性降低而提出的解决方案。
BASE其实是下面三个术语的缩写:
基本可用(Basically Available)
软状态(Soft state)
最终一致(Eventually consistent)
它的思想是通过让系统放松对某一时刻数据一致性的要求来换取系统整体伸缩性和性能上改观。为什么这么说呢,缘由就在于大型系统往往由于地域分布和极高性能的要求,不可能采用分布式事务来完成这些指标,要想获得这些指标,我们必须采用另外一种方式来完成,这里BASE就是解决这个问题的办法
简单来讲:
1分布式:不同的多台服务器上面部署不同的服务模块(工程),他们之间通过Rpc/Rmi之间通信和调用,对外提供服务和组内协作。
2集群:不同的多台服务器上面部署相同的服务模块,通过分布式调度软件进行统一的调度,对外提供服务和访问。
转载于:https://my.oschina.net/wugong/blog/1612858
redis学习之——CAP原理CAP+BASE相关推荐
- 分布式数据库中CAP原理CAP+BASE
一.传统的ACID 分别是什么 1.A: atomicity 原子性 2.C: Consistency 一致性 3.I: Isolation 独立性 4.D: Duraility 持久性 二.CAP ...
- base cap 分布式_分布式基础(1):CAP原理、BASE思想和最终一致性
CAP,BASE和最终一致性是NoSQL数据库存在的三大基石. CAP C: Consistency 一致性 A: Availability 可用性(指的是快速获取数据) P: Tolerance o ...
- CAP原理(CAP THEOREM)
FROM:http://baike.baidu.com/view/45961.htm#3 在足球比赛里,一个球员在一场比赛中进三个球,称之为帽子戏法(HAT-TRICK).在分布式数据系统中,也有一个 ...
- 分布式数据库CAP原理
分布式数据库CAP原理 CAP简介 CAP理论 CAP总结 CAP简介 传统的关系型数据库事务具备ACID: (1)A :原子性 (2)C :一致性 (3)I :独立性 (4)D :持久性 分布式数据 ...
- redis学习-分布式数据库CAP原理
传统的ACID分别是什么 A (Atomicity) 原子性 C (Consistency) 一致性 I (Isolation) 独立性 D (Durability) 持久性 关系型数据库遵循ACID ...
- 分布式系统中的FLP不可能原理、CAP理论与BASE理论
前言 分布式系统是由多个不同的服务节点组成,节点与节点之间通过消息传递进行通信和协调.根据消息传递的不同,分布式系统的运行模型可以分为异步模型系统 和同步模型系统. 1.同步与异步 同步和异步关注的是 ...
- 深入理解分布式CAP原理
hi,大家好,互联网最重要任务莫过于海量数据处理,即大规模分布式系统(单机性能有限),分布式是互联网的核心技术,希望大家可以掌握. 什么是 CAP? 作者:聂鹏程,文章来源极客时间 --分布式技术原理 ...
- FLP不可能原理/CAP原理/ACID原则
FLP不可能原理:在网络可靠,但允许节点失效(即便只有一个)的最小化异步模型系统中,不存在一个可以解决一致性问题的确定性共识算法. FLP不可能原理实际上告诉人们,不要浪费时间,去为异步分布式系统设计 ...
- 分布式与微服务——Iaas,Paas和Saas、单体应用和缺点、微服务概念、传统 分布式 SOA 架构与微服务架构的区别、微服务实战、什么是RPC、CAP定理和BASE理论、唯一ID生成、实现分布式
文章目录 1-什么是Iaas,Paas和Saas 一 IaaS基础设施服务 二 paas平台即服务 三saas软件即服务 四 总结 2-单体应用和缺点 一 单体应用 二 单体应用的缺陷 3-微服务概念 ...
最新文章
- Java中对HashMap的深度分析
- 几种常用平衡树的概述(持续更新]
- bug?VS2010中CImageList::DrawIndirect总是返回失败
- url.getinputsteam 获取不完整_年度营销方案合集,活动策划,规划推广,全内容完整套用告别加班...
- Cocos2D中相关问题提问的几个论坛
- ReactNative 触摸事件处理
- 技巧:在 C/C++中如何构造通用的对象链表
- mysql blackhole引擎_MySQL BlackHole引擎
- 要闻君说:Intel要“起底”新任CEO了?微软停止支持Win 7?OPPO加入WPC无线充电联盟,15W无线闪充技术呼之欲出!...
- web单页应用(一)
- html框架里面怎么填写内容_还不会Python高级框架?进来,速学
- 无法执行程序。所执行的命令为 C:\Windows\Microsoft.NET\Framework64\v4.0.30319\csc.exe /noconfig /fullpaths @C:\W...
- 今日头条官方辟谣:水滴筹从未收取过手续费
- 拳王虚拟项目公社:知识付费之出售虚拟教程资源赚钱,小白轻松赚钱的方式
- python入门教授_南开大学教授强力推荐的5本Python入门书籍,附电子版
- VB.NET工作笔记004---查看电脑已经安装了哪些COM组件,可以用个OleViewer.zip
- 跨域问题深入理解以及解决办法
- configure报错C compiler cannot create executables
- cmd 终端快速查看自己的ip地址
- 继电器----D型触发器,边沿触发器,累加器