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、动态负载均衡。
本站文章为和通数据库网友分享或者投稿,欢迎任何形式的转载,但请务必注明出处.
同时文章内容如有侵犯了您的权益,请联系QQ:970679559,我们会在尽快处理。