当前位置:   article > 正文

CAP理论_同属于cap原则的数据库

同属于cap原则的数据库

1. 概念

CAP理论,指的是在一个分布式系统不可能同时很好的满足Consistency(一致性)、Availability(可用性)、Partition Tolerance(分区容错性),最多只能同时较好的满足两个。

在这里插入图片描述

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

  • CA without P
    • 单点集群,满足一致性,可用性的系统,通常在可扩展性上不太强大。
    • 传统关系型数据库
  • CP without A
    • 满足一致性、分区容错性的系统,通常性能不是很高。
    • 大多数网站架构的选择
  • AP without C
    • 满足可用性,分区容错性的系统,通常可能对一致性要求低一些。
    • Redis、MongoDB

2. 总结

在实践中,可根据实际情况进行权衡,或者在软件层面提供配置方式,由用户决定如何选择 CAP 策略。

CAP 理论可用在不同的层面,可以根据 CAP 原理定制局部的设计策略,例如,在分布式系统中,每个节点自身的数据是能保证 CA 的,但在整体上又要兼顾 AP 或 CP。

CAP理论是说在分布式存储系统中,最多只能实现两点,而由于当前的网络硬件肯定会出现延迟丢包等问题,所以分区容错性是必须要实现的,我们只能在一致性和可用性之间进行权衡,没有任何一种数据库系统能够同时保证这三点。

2.1. 一致性和可用性的抉择

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

  • 数据库事务一致性需求

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

  • 数据库的写实时性和读实时性需求

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

  • 对复杂的SQL查询,特别是夺标关联查询的需求

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

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/不正经/article/detail/395359
推荐阅读
相关标签
  

闽ICP备14008679号