zoukankan
html css js c++ java
【笔记】CAP原理和BASE思想
摘自http://www.jdon.com/37625
分布式领域CAP理论,
Consistency(一致性), 数据一致更新,所有数据变动都是同步的
Availability(可用性), 好的响应性能
Partition tolerance(分区容错性) 可靠性
定理:任何
分布式
系统只可同时满足二点,没法三者兼顾。
忠告:架构师不要将精力浪费在如何设计能满足三者的完美
分布式
系统,而是应该进行取舍。
关系数据库的ACID模型拥有 高一致性 + 可用性 很难进行分区:
Atomicity原子性:一个事务中所有操作都必须全部完成,要么全部不完成。
Consistency一致性. 在事务开始或结束时,数据库应该在一致状态。
Isolation隔离层. 事务将假定只有它自己在操作数据库,彼此不知晓。
Durability. 一旦事务完成,就不能返回。
跨数据库事务:2PC (two-phase commit), 2PC is the anti-scalability pattern (Pat Helland) 是反可伸缩模式的,JavaEE中的JTA事务可以支持2PC。因为2PC是反模式,尽量不要使用2PC,使用BASE来回避。
BASE模型反ACID模型,完全不同ACID模型,牺牲高一致性,获得可用性或可靠性:
Basically Available基本可用。支持分区失败(e.g. sharding碎片划分数据库)
Soft state软状态 状态可以有一段时间不同步,异步。
Eventually consistent最终一致,最终数据是一致的就可以了,而不是时时高一致。
BASE思想的主要实现有
1.按功能划分数据库
2.sharding碎片
BASE思想主要强调基本的可用性,如果你需要High 可用性,也就是纯粹的高性能,那么就要以一致性或容错性为牺牲,BASE思想的方案在性能上还是有潜力可挖的。
现在
NoSQL
运动丰富了拓展了BASE思想,可按照具体情况定制特别方案,比如忽视一致性,获得高可用性等等,NOSQL应该有下面两个流派:
1. Key-Value存储,如Amaze Dynamo等,可根据CAP三原则灵活选择不同倾向的数据库产品。
2. 领域模型 +
分布式
缓存
+ 存储 (
Qi4j和
NoSQL
运动),可根据CAP三原则结合自己项目定制灵活的
分布式
方案,难度高。
这两者共同点:都是关系数据库SQL以外的可选方案,逻辑随着数据分布,任何模型都可以自己持久化,将数据处理和数据存储分离,将读和写分离,存储可以是异步或同步,取决于对一致性的要求程度。
不同点:NOSQL之类的Key-Value存储产品是和关系数据库头碰头的产品BOX,可以适合非Java如PHP RUBY等领域,是一种可以拿来就用的产品,而领域模型 +
分布式
缓存
+ 存储是一种复杂的架构解决方案,不是产品,但这种方式更灵活,更应该是架构师必须掌握的。
查看全文
相关阅读:
5 Python3 函数进阶&迭代器与生成器
2 python第三章文件操作
4 python内置函数
python内置函数 eval()、exec()以及complie()函数
0 字符与字节的区别
python enumerate() 函数
1 python 文件处理
python 之编写登陆接口
python 之九九乘法表
第一模块第二章-数据类型整理
原文地址:https://www.cnblogs.com/zhangyuan0532/p/4269279.html
最新文章
(尚012)Vue表单数据的自动手集(表单数据提交,需要收集表单数据)
(尚011)Vue事件处理
(尚010)Vue列表的搜素和排序
(尚009)Vue列表渲染
(尚008)Vue条件渲染
(尚007)Vue强制绑定class和style
Oracle 常用命令
【目录】 Git 教程
oracle 常见操作
13 Oracle数据库开发与设计入门篇
热门文章
LeetCode Single Number II 单元素2
UVA 10801 Lift Hopping 电梯换乘(最短路,变形)
LeetCode
UVA 1663 Purifying Machine (二分图匹配,最大流)
HDU 5296 Annoying problem (LCA,变形)
HDU 5294 Tricks Device (最短路,最大流)
HDU 5289 Assignment (数字序列,ST算法)
LeetCode Insertion Sort List 链表插入排序
POJ 3259 Wormholes 虫洞(负权最短路,负环)
UVA 1660 Cable TV Network 电视网络(无向图,点连通度,最大流)
Copyright © 2011-2022 走看看