欢迎投稿

今日深度:

Cassandra,Cassandra旨

Cassandra,Cassandra旨


1 概念

Apache Cassandra 是高度可扩展的,高性能的分布式 NoSQL 数据库。 Cassandra 旨在处理许 多商品服务器上的大量数据,提供高可用性而无需担心单点故障。 Cassandra 具有能够处理大量数据的分布式架构。 数据放置在具有多个复制因子的不同机器上, 以获得高可用性,而无需担心单点故障。

2 数据模型

Key Space (对应 SQL 数据库中的 database 1. 一个 Key Space 中可包含若干个 CF,如同 SQL 数据库中一个 database 可包含多个 table Key (对应 SQL 数据库中的主键) 2. 在 Cassandra 中,每一行数据记录是以 key/value 的形式存储的,其中 key 是唯一标识。 column (对应 SQL 数据库中的列) 3. Cassandra 中每个 key/value 对中的 value 又称为 column ,它是一个三元组,即:name, value 和 timestamp,其中 name 需要是唯一的。 super column SQL 数据库不支持) 4. cassandra 允许 key/value 中的 value 是一个 map(key/value_list) ,即某个 column 有多个 子列。 Standard Column Family (相对应 SQL 数据库中的 table 5. 每个 CF 由一系列 row 组成,每个 row 包含一个 key 以及其对应的若干 column Super Column Family SQL 数据库不支持) 6. 每个 SCF 由一系列 row 组成 ,每个 row 包含一个 key 以及其对应的若干 super column。

3.Cassandra 一致 Hash 和虚拟节点

一致性 Hash (多米诺 down 机) 为每个节点分配一个 token,根据这个 token 值来决定节点在集群中的位置以及这个节点所存储 的数据范围。 JDX 13/04/2018 Page 193 of 283 虚拟节点( down 机多节点托管) 由于这种方式会造成数据分布不均的问题, 在 Cassandra1.2 以后采用了虚拟节点的思想:不需要 为每个节点分配 token,把圆环分成更多部分,让每个节点负责多个部分的数据,这样一个节点移 除后,它所负责的多个 token 会托管给多个节点处理,这种思想解决了数据分布不均的问题。

4 Gossip 协议

Gossip 算法如其名,灵感来自办公室八卦,只要一个人八卦一下,在有限的时间内所有的人都 会知道该八卦的信息,这种方式也与病毒传播类似,因此 Gossip 有众多的别名“闲话算法”、 “疫情传播算法”、“病毒感染算法”、“谣言传播算法”。 Gossip 的特点:在一个有界网络中, 每个节点都随机地与其他节点通信,经过一番杂乱无章的通信,最终所有节点的状态都会达成一 致。因为 Gossip 不要求节点知道所有其他节点, 因此又具有去中心化的特点 ,节点之间完全对等, 不需要任何的中心节点。实际上 Gossip 可以用于众多能接受“最终一致性”的领域:失败检测、 路由同步、Pub/Sub、动态负载均衡。

www.htsjk.Com true http://www.htsjk.com/cassandra/45635.html NewsArticle Cassandra,Cassandra旨 1 概念 Apache Cassandra 是高度可扩展的高性能的分布式 NoSQL 数据库。 Cassandra 旨在处理许 多商品服务器上的大量数据提供高可用性而无需担心单点故障。 Cassandra 具有能...
评论暂时关闭