CAP 原理[通俗易懂]

CAP 原理[通俗易懂]简单记录下分布式数据库的CAP原理

大家好,又见面了,我是你们的朋友全栈君。

在这里插入图片描述

  • Consistency:强一致性
  • Availability:可用性
  • Partition tolerance:分区容错性

CAP理论的核心是:一个分布式系统不可能同时很好的满足一致性,可用性和分区容错性这三个需求,
最多只能同时较好的满足两个

因此,根据 CAP 原理将 NoSQL 数据库分成了满足 CA 原则、满足 CP 原则和满足 AP 原则三大类:

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

由于当前的网络硬件肯定会出现延迟丢包等问题,所以分区容忍性是我们必须需要实现的

  • CA:传统Oracle数据库

  • AP:大多数网站架构的选择

  • CP:Redis、Mongodb

注意:分布式架构的时候必须做出取舍,一致性和可用性之间取一个平衡。对于大多数 web 应用,其实并不需要强一致性。因此牺牲 C 换取 P,这是目前分布式数据库产品的方向。

一致性与可用性的决择

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

  • 数据库事务一致性需求
      很多 web 实时系统并不要求严格的数据库事务,对读一致性的要求很低, 有些场合对写一致性要求并不高。允许实现最终一致性。

  • 数据库的写实时性和读实时性需求
      对关系数据库来说,插入一条数据之后立刻查询,是肯定可以读出来这条数据的,但是对于很多web应用来说,并不要求这么高的实时性,比方说发一条消息之 后,过几秒乃至十几秒之后,我的订阅者才看到这条动态是完全可以接受的。

  • 对复杂的SQL查询,特别是多表关联查询的需求
      任何大数据量的 web 系统,都非常忌讳多个大表的关联查询,以及复杂的数据分析类型的报表查询,特别是 SNS 类型的网站,从需求以及产品设计角度,就避免了这种情况的产生。往往更多的只是单表的主键查询,以及单表的简单条件分页查询,SQL的功能被极大的弱化了。

BASE 就是为了解决关系数据库强一致性引起的问题而引起的可用性降低而提出的解决方案。BASE其实是下面三个术语的缩写:

  • 基本可用(Basically Available)
  • 软状态(Soft state)
  • 最终一致(Eventually consistent)

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

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/144255.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • CTR预估算法之FM, FFM, DeepFM及实践

    CTR预估算法之FM, FFM, DeepFM及实践目录目录CTR预估综述FactorizationMachines(FM)算法原理代码实现Field-awareFactorizationMachines(FFM)算法原理代码实现DeepFM算法原理代码实现参考文献CTR预估综述点击率(Clickthroughrate)是点击特定链接的用户与查看页面,电子邮…

    2022年6月12日
    41
  • 键盘enter事件时间页面绑定

    键盘enter事件时间页面绑定

    2022年1月9日
    52
  • idea在线激活码(注册激活)「建议收藏」

    (idea在线激活码)JetBrains旗下有多款编译器工具(如:IntelliJ、WebStorm、PyCharm等)在各编程领域几乎都占据了垄断地位。建立在开源IntelliJ平台之上,过去15年以来,JetBrains一直在不断发展和完善这个平台。这个平台可以针对您的开发工作流进行微调并且能够提供…

    2022年3月26日
    427
  • 超全,7种经典推荐算法模型及应用

    超全,7种经典推荐算法模型及应用本文调研了推荐系统里的经典推荐算法,结合论文及应用进行分析、归纳并总结成文,既是自己的思考过程,也可当做以后的翻阅手册。前言个性化推荐,是指通过分析、挖掘用户行为,发现用户的个性化需求与兴趣特点,将用户可能感兴趣的信息或商品推荐给用户。本文调研了推荐系统里的经典推荐算法,结合论文及应用进行分析、归纳并总结成文,既是自己的思考过程,也可当做以后的翻阅手册。俗话说学而时习之,人的认识过程是呈螺旋式上升的,特别是理论应用到实践的过程,理论是实践的基础,实践能反过来指导人对理论的认识,我相信在将下文所述的算法应

    2022年6月23日
    36
  • QOS流量整形「建议收藏」

    QOS流量整形「建议收藏」文章目录1、拓扑2、路由器配置整形命令3、交换机配置整形命令4、小结

    2025年8月23日
    6
  • 数据结构之二叉树的前序遍历、中序遍历、后序遍历、层序遍历「建议收藏」

    数据结构之二叉树的前序遍历、中序遍历、后序遍历、层序遍历「建议收藏」最近也是在准备笔试,由于没有系统的学过数据结构,所以每次在考到二叉树的遍历的时候都是直接跪,次数多了也就怒了,前些天也是准备论文没时间整这些,现在提交了,算是稍微轻松点了,所以花了半天的时间来学了下二叉树。现在记下来,以便后序查阅。一、二叉树的遍历概念  1. 二叉树的遍历是指从根结点触发,按照某种次序依次访问二叉树中所有结点,使得每个结点被访问一次且仅被访问一次。(1).前(

    2025年11月17日
    6

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号