NoSql数据库之Cassandra的优缺点

十点数据 1年前 ⋅ 3918 阅读

Cas1sandra11.jpg EricBrewer教授提出 CAP理论 ,在设计和部署分布式应用的时候,存在三个核心的系统需求:

C: Consistency 一致性

A: Availability 可用性

P:Partition Tolerance分区容错性

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

那么CAP到底是咋个回事呢?

● 一致性(C):在分布式系统中的所有数据备份,在同一时刻是否同样的值。
● 可用性(A):在集群中一部分节点故障后,集群整体是否还能响应客户端的读写请求。(可用性不仅包括读,还有写)
● 分区容忍性(P):集群中的某些节点在无法联系后,集群整体是否还能继续进行服务.

数据库的世界里面,关系型数据库讲究的是 ACID,什么意思呢?

原子性(Atomicity). 事务中的所有操作,要么全部成功,要么全部不做.

一致性(Consistency) 在事务开始与结束时,数据库处于一致状态.

隔离性(Isolation). 事务如同只有这一个操作在被数据库所执行一样.

持久性(Durability). 在事务结束时,此操作将不可逆转. 在分布式领域,有一个对应的模型叫 BASE.

Basically Available(基本可用)

Soft state(柔性状态) 状态可以有一段时间不同步,异步

Eventually consistent(最终一致) 最终数据是一致的就可以了,而不是时时一致

我们使用的 mysql, 遵循的是 ACID, 现在使用的 Cassandra,遵循的是BASE。

BASE的基础,就是CAP理论。

Cassandra在CAP里面,取的是AP,舍的是C,注意:并不是完全不要C,而是要了一个弱化的C。 也就是最终一致,不是时时一致。

全部评论: 0

    我有话说: