分布式数据库中的CAP原理 CAP+BASE

来源:互联网 发布:mac安装win7双系统 编辑:程序博客网 时间:2024/06/05 02:29

1、在传统的关系型数据库中,事物(transaction)遵循ACID四种规则:
① A(Atomicity) 原子性:事物里的所有操作要么全部做完,要么都不做,一条失败,全部回滚。
② C(Consistency) 一致性:数据要一直保持一致的状态,事物的运行不会影响一致性约束。
③ I(Isolation) 独立性:并发的事物之间不会互相影响。
④ D(Durability) 持久性:数据一旦提交之后,所做的修改将会永久保存在数据上。

2、而在NoSQL数据库中,事物的特点为:
① C(Consistency) 强一致性:
② A(Availability) 可用性:
③ P(Partition tolerance) 分区容错性:
并保持三进二的原则,即:核心理念就是,一个分布式系统不可能同时很好的满足一致性、可用性和分区容错性这三个需求,最多只能同时较好的满足两个。
因此,根据CAP原理将NoSQL数据库分成了满足CA原则、满足CP原则、满足AP原则 三大类。
CA-单点集群,满足一致性,可用性的系统,但一般在可扩展性上不太强大;(传统的Oracle数据库)
AP-满足可用性,分区容忍性的系统,一般对一致性要求不高。(大多数网站架构的选择)
CP-满足一致性,分区容错的系统,一般性能不是很高;(redis、Mongodb)

CAP理论就是说在分布式存储系统中,最多只能实现上面两点,而由于当前网络硬件肯定会出现延迟丢包等问题,所以分区容忍性一定要实现。
大多数web应用,尤其是高并发的网站里 保持一致性并不是很重要,目前分布式数据库产品的方向是 弱一致性 + AP(高可用+分布式容忍性)。最终还是要求一致性的只是相对来说并不是很重要,落地技术就是NoSQL(redis为CP,来保证大多数整体网站的AP,最终传统数据是CA)。

3、BASE就是为了解决关系数据库强一致性引起的问题 而引起的可用性降低提出的解决方案。
BASE 基本可用(Basically Available)
软状态(Soft state)
最终一致性(Eventually consistent)
所有分布式的思想就是通过让系统放松对某一刻数据一致性的要求来换系统整体的伸缩性和性能的改观,
这里的BASE就是解决这个问题的。

4、分布式系统和集群简介
分布式系统(distributed system)
由多台计算机和通信的软件组件通过计算机网络连接(本地网络或广域网)组成。分布式系统是建立在网络之上的软件系统。正是因为软件的特性,所以分布式系统具有高度的内聚性和透明性。因此,网络和分布式系统之间的区别更多的在于高层软件(特别是操作系统),而不是硬件。分布式系统可以应用在在不同的平台上如:Pc、工作站、局域网和广域网上等。
简单来讲:
①分布式:不同的多台服务器上面部署不同的服务模块(工程),他们之间通过Rpc/Rmi之间通信和调用,对外提供服务和组内协作。
②集群:不同的多台服务器上面部署相同的服务模块,通过分布式调度软件进行统一的调度,对外提供服务和访问。

原创粉丝点击