Cassandra的架构
Cassandra的设计目的是处理跨多个节点的大数据工作负载,而没有任何单点故障。Cassandra在其节点之间具有对等分布式系统,并且数据分布在集群中的所有节点之间。
1 Cassandra中的数据复制:在Cassandra中,集群中的一个或多个节点充当给定数据片段的副本。如果检测到一些节点以过期值响应,Cassandra将向客户端返回最近的值。返回最新的值后,Cassandra在后台执行读修复以更新失效值
2 Cassandra的组件:
Cassandra的关键组件如下:
-
节点 - 它是存储数据的地方。
-
数据中心 - 它是相关节点的集合。
-
集群 - 集群是包含一个或多个数据中心的组件。
-
提交日志 - 提交日志是Cassandra中的崩溃恢复机制。每个写操作都写入提交日志。
-
Mem-表 - mem-表是存储器驻留的数据结构。提交日志后,数据将被写入mem表。有时,对于单列族,将有多个mem表。
-
SSTable - 它是一个磁盘文件,当其内容达到阈值时,数据从mem表中刷新。
-
布隆过滤器 - 这些只是快速,非确定性的算法,用于测试元素是否是集合的成员。它是一种特殊的缓存。 每次查询后访问Bloom过滤器。
3 Cassandra 查询语言
Cassandra查询语言(CQL)通过其节点访问Cassandra。
写操作
节点的每个写入活动都由写在节点中的提交日志捕获。稍后数据将被捕获并存储在存储器表中。每当内存表满时,数据将写入SStable数据文件。所有写入都会在整个集群中自动分区和复制。Cassandra会定期整合SSTables,丢弃不必要的数据。
读操作
在读操作,Cassandra 从MEM-表得到的值,并检查过滤器绽放找到保存所需数据的相应的SSTable。