ICode9

精准搜索请尝试: 精确搜索
首页 > 数据库> 文章详细

分布式数据库CAP原理+BASE

2020-01-26 16:05:57  阅读:227  来源: 互联网

标签:可用性 数据库 CAP 查询 BASE 一致性 分布式


1:CAP理论核心

CAP理论的核心是:一个分布式系统不可能同时很好的满足一致性,可用性和分区容错性这三个需求,最多只能同时较好的满足两个。
因此,根据CAP原理将NoSQL数据库分成了满足CA原则、满足CP原则和满足AP原则三大类:

  • CA:单点集群,满足一致性,可用性的系统,通常在可扩展性上不太强大。
  • CP:满足一致性,分区容忍必的系统,通常性能不是特别高
  • AP:满足可用性,分区容忍性的系统,通常可能对一致性要求低一些

在这里插入图片描述
CAP理论就是说在分布式存储系统中,最多只能实现上面的两点。而由于当前的网络硬件肯定会出现延迟丢包等问题,所以分区容忍性是我们必须需要实现的。所以我们只能在一致性和可用性之间进行权衡,没有NoSQL系統能同时保证这三点。

  • C:强一致性
  • A:高可用性
  • P:分布式容忍性
  • CA:传统Oracle数据库
  • AP:大多数网站架构的选择
  • CP :Redis、Mongodb
  • 注意:分布式架构的时候必须做出取舍。

2:一致性与可用性抉择

对于web2.0网站来说,关系数据库的很多主要特性却往往无用武之地。

  • 数据库事务一致性需求:
    很多web实时系统并不要求严格的数据库事务,对读一致性的要求很低,有些场合对写一 致性要求 并不高。允许实现最终一致性。
  • 数据库的写实时性和读实时性需求:
    对关系数据库来说,插入一 条数据之后立刻查询,是肯定可以读出来这条数据的,但是对于很多web应用来说,并不要求这么高的实时性,比方说发一条消息之后 ,过几秒乃至十几秒之后,我的订阅者才看到这条动态是完全可以接受的。对复杂的SQL查询,特别是多表关联查询的需求
  • 任何大数据量的web系统,都非常忌讳多个大表的关联查询,以及复杂的数据分析类型的报表查询,特别是SNS类型的网站,从需求以及产品设计角度,就避免了这种情况的产生。往往更多的只是单表的主键查询,以及单表的简单条件分页查询,SQL的功能 被极大的弱化了。

3:BASE介绍

BASE就是为了解决关系数据库强一致性引起的问题而引起的可用性降低而提出的解决方案。

BASE其实是下面三个术语的缩写:

  • 基本可用(Basically Available)

  • 软状态(Soft state)

  • 最终一致(Eventually consistent)

  • BASE的思想是通过让系统放松 对某一时刻数据一致性 的要求来换取系统整体伸缩性和性能上改观。为什么这么说呢,缘由就在于大型系统往往由于地域分布和极高性能的要求,不可能采用分布式事务来完成这些指标,要想获得这些指标,我们必须采用另外一种方式来完成,这里BASE就是解决这个问题的办法

福建选手阿俊 发布了167 篇原创文章 · 获赞 119 · 访问量 1万+ 私信 关注

标签:可用性,数据库,CAP,查询,BASE,一致性,分布式
来源: https://blog.csdn.net/qq_44891295/article/details/104087574

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有