Cassandra

ApacheCassandra是一款高度可扩展、高性能的分布式NoSQL数据库,设计用于处理大量数据并提供高可用性。其数据模型包括KeySpace、ColumnFamily、Column和Supercolumn等概念,采用一致性哈希和虚拟节点来实现数据分布和容错。Gossip协议则用于节点间的通信和状态同步,确保最终一致性。
摘要由CSDN通过智能技术生成

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、动态负载均衡。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值