分布式数据库原理CAP+BASE

 

传统的ACID

1)原子性(Atomicity):

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

2)一致性(Consistency):

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

3)独立性(Isolation):

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

4)持久性(Durability):

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

 

分布式数据库的CAP

(nosql三个有且只能满足两个)鱼和熊掌不可兼得

1)强一致性(Consistency) 任何一个读操作总是能读取到之前完成的写操作结果,也就是在分布式环境中,多点的数据是一致的。 如数据的变化能够实时显示

2)可用性(Availability)每一个操作总是能在确定的时间内返回,也不是系统随时都是可用的。 如 浏览一个网页能够保证网页不会出错

3)分区容错性(Partition tolerance)在出现网络分区(如断网)的情况下,分离的系统也能正常运行。

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

因此,CAP原理将NOSQL数据库分成了满足以下原则的三大类:

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

  注:传统Oracle数据库

2)AP  -满足一致性、分区容错性的系统,通常性能不是特别高。

  注:大多数网站架构的选择    如淘宝双十一

3)CP  -满足可用性、分区容错性的系统,通常可能对一致性要求低一些。

  注:redis、mongodb

 

BASE

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

BASE由三个术语缩写:

1)基本可用(Basically Available)

2)软状态(Soft state)

3)最终一致(Eventually Consistent)

比如淘宝双十一抢购(AP),不能实时显示数据,在过去高峰期以后再把数据进行一致

 

 

分布式系统:

由多台计算机和通信的软件组件通过计算机网络连接(本地网络或广域网)组成。分布式系统是建立在网络之上的软件系统。正式因为软件的特性,所以分布式系统具有高度的内聚性和透明性。因此,网络和分布式系统之间的区别更多的在于高层软件(特别是操作系统),而不是硬件。分布式系统可以应用在不同的平台上。如:PC、工作站、局域网和广域网上等。

(简单来说~)

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

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

 

 

参考尚硅谷

你可能感兴趣的:(redis)