关闭

CAP原理和BASE思想

标签: java
719人阅读 评论(0) 收藏 举报
分类:

分布式领域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等领域,是一种可以拿来就用的产品,而领域模型 + 分布式缓存 + 存储是一种复杂的架构解决方案,不是产品,但这种方式更灵活,更应该是架构师必须掌握的。



原文地址:http://www.jdon.com/37625
0
0
查看评论

ACID、BASE和CAP原理

1.ACID     ACID,是指在数据库管理系统(DBMS)中,事务(transaction)所具有的四个特性:原子性(Atomicity)、一致性(Consistency)、隔离性(Isolation,又称独立性)、持久性(Durability)。 ...
  • sinat_27186785
  • sinat_27186785
  • 2016-07-26 09:17
  • 1144

CAP原理和BASE思想

分布式领域CAP理论, Consistency(一致性), 数据一致更新,所有数据变动都是同步的 Availability(可用性), 好的响应性能 Partition tolerance(分区容错性) 可靠性 定理:任何分布式系统只可同时满足二点,没法三者兼顾。 忠告:架构师不要将精...
  • azenge
  • azenge
  • 2014-04-21 15:26
  • 292

从分布式一致性谈到CAP理论、BASE理论

问题的提出 在计算机科学领域,分布式一致性是一个相当重要且被广泛探索与论证问题,首先来看三种业务场景。 1、火车站售票 假如说我们的终端用户是一位经常坐火车的旅行家,通常他是去车站的售票处购买车票,然后拿着车票去检票口,再坐上火车,开始一段美好的旅行----一切似乎都是那么和谐。想象一下,如果...
  • zhangyuan19880606
  • zhangyuan19880606
  • 2016-04-13 15:08
  • 2575

Base思想和cap思想

分布式领域CAP理论, Consistency(一致性), 数据一致更新,所有数据变动都是同步的 Availability(可用性), 好的响应性能 Partition tolerance(分区容错性) 可靠性 定理:任何分布式系统只可同时满足二点,没法三者兼顾。 忠告:架构师不要将精...
  • sinat_32485497
  • sinat_32485497
  • 2017-06-21 22:12
  • 65

CAP原理和BASE思想 ACID模型

分布式领域CAP理论, Consistency(一致性), 数据一致更新,所有数据变动都是同步的 Availability(可用性), 好的响应性能 Partition tolerance(分区容错性) 可靠性 定理:任何分布式系统只可同时满足二点,没法三者兼顾。 忠告:架构师不要将精...
  • luyee2010
  • luyee2010
  • 2013-01-26 01:42
  • 605

CAP原理和BASE思想浅聊

分布式领域CAP理论 Consistency(一致性), 数据一致更新,所有数据变动都是同步的 Availability(可用性), 好的响应性能 Partition tolerance(分区容错性) 可靠性 定理:任何分布式系统只可同时满足二点,没法三者兼顾。 忠告:架构...
  • ji_xiang
  • ji_xiang
  • 2017-07-25 09:42
  • 87

事务原理:ACID,CAP和BASE理论及分布式事务一致性案例

分布式系统一致性的需求需求定义 Safety Only a value that has been proposed may be chosen. Only a single value is chosen. A node never learns that a value has been ...
  • zjcjava
  • zjcjava
  • 2017-12-25 15:34
  • 550

分布式中 CAP BASE ACID 理解

概念理解(CAP,BASE, ACID), 一致性算法,CAP不同组合,一致性理解
  • dellme99
  • dellme99
  • 2013-11-11 17:33
  • 4146

【分布式存储理论基础】CAP,BASE,ACID

1.     CAP          一致性(Consistency)可用性(Availability)分区容忍性(Partitiontolerance)CAP原理指...
  • sunxinhere
  • sunxinhere
  • 2012-09-03 10:03
  • 3464

分布式系统事务一致性到CAP,BASE理论

文章出处:http://www.cnblogs.com/szlbm/p/5588543.html
  • u014403546
  • u014403546
  • 2017-02-08 10:44
  • 2975
    个人资料
    • 访问:557045次
    • 积分:6394
    • 等级:
    • 排名:第4534名
    • 原创:130篇
    • 转载:33篇
    • 译文:22篇
    • 评论:159条
    统计
    Flag Counter
    小鼠
    个人简介
    Java工程师,参与过网上银行、短信平台、渠道整合平台等大型Java EE项目开发,2016年与清华大学出版社合作编写并出版《AngularJS入门与进阶》一书。

    图书封面:


    图书简介
    目前淘宝、京东等电商网站有售。
    点我购书
    联系方式: jiangrongbo@gmail.com
    博客专栏
    最新评论