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

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

传统的ACID

1)原子性(Atomicity):redis

事务里的全部操做要么所有作完,要么都不作,事务成功的条件是事务里的全部操做都成功。sql

2)一致性(Consistency):mongodb

数据库要一直处于一致的状态,事务的运行不会改变数据库本来的一致性约束。数据库

3)独立性(Isolation):服务器

指并发的事务之间不会相互影响,一个事务要访问的数据正在被另外一个事务修改,那么在另外一个事务提交以前,看到的数据是未改变的。网络

4)持久性(Durability):架构

持久性是指事务提交后,他所作的修改将会永久的保存在数据库上,即便出现宕机也不会丢失。并发

 

分布式数据库的CAP

(nosql三个有且只能知足两个)nosql

1)强一致性(Consistency)分布式

2)可用性(Availability)

3)分区容错性(Partition tolerance)

CAP理论的核心是:一个分布式系统不可能同时很好的知足一致性、可用性和分区容错性三个需求

所以,CAP原理将NOSQL数据库分红了知足如下原则的三大类:

1)CA  -单点集群,知足一致性,可用性的系统,一般在可扩展性上不太强大。

  注:传统Oracle数据库

2)CP  -知足一致性、分区容错性的系统,一般性能不是特别高。

  注:大多数网站架构的选择

3)AP  -知足可用性、分区容错性的系统,一般可能对一致性要求低一些。

  注:redis、mongodb

 

BASE

为了解决关系数据库强一致性引发的问题而引发的可用性下降而提出的解决方案

BASE由三个术语缩写:

1)基本可用(Basically Available)

2)软状态(Soft state)

3)最终一直(Eventually Consistent)

其思想为:经过系统放松对某一时刻数据一致性的要求来换取系统总体伸缩性和性能上的改观。

 

分布式系统:

由多台计算机和通讯的软件组件经过计算机网络链接(本地网络或广域网)组成。分布式系统是创建在网络之上的软件系统。正式由于软件的特性,因此分布式系统具备高度的内聚性和透明性。所以,网络和分布式系统之间的区别更多的在于高层软件(特别是操做系统),而不是硬件。分布式系统能够应用在不一样的平台上。如:PC、工做站、局域网和广域网上等。

(简单来讲~)

1)分布式:不一样的多台服务器上面部署不一样的服务模块(工程),他们之间经过 Rpc 或 Rmi 之间通讯和调用,对外提供服务和组内协做。

2)集群: 不一样的多台服务器上面部署相同的服务模块,经过分布式调度软件进行统一的调度,对外提供服务和访问。

 

感谢来自尚硅谷的视频讲解~~~