- Cassandra教程
- Cassandra - 主页
- Cassandra - 简介
- Cassandra - 架构
- Cassandra - 数据模型
- Cassandra - 安装
- Cassandra - 引用的 Api
- Cassandra-Cqlsh
- Cassandra - Shell 命令
- Cassandra 键空间操作
- Cassandra - 创建键空间
- Cassandra - 更改键空间
- Cassandra - 删除 Keyspace
- Cassandra 表操作
- Cassandra - 创建表
- Cassandra - 更改表
- Cassandra - 删除表
- Cassandra - 截断表
- Cassandra - 创建索引
- Cassandra - 删除索引
- Cassandra - 批处理
- Cassandra CURD 操作
- Cassandra - 创建数据
- Cassandra - 更新数据
- Cassandra - 读取数据
- Cassandra - 删除数据
- Cassandra CQL 类型
- Cassandra - CQL 数据类型
- Cassandra - CQL 集合
- CQL 用户定义的数据类型
- Cassandra有用的资源
- Cassandra - 快速指南
- Cassandra - 有用的资源
- Cassandra - 讨论
Cassandra - 架构
Cassandra 的设计目标是跨多个节点处理大数据工作负载,而不会出现任何单点故障。Cassandra 具有跨节点的点对点分布式系统,数据分布在集群中的所有节点之间。
集群中的所有节点都扮演相同的角色。每个节点都是独立的,同时又与其他节点互连。
集群中的每个节点都可以接受读写请求,无论数据实际位于集群中的哪个位置。
当节点出现故障时,可以从网络中的其他节点提供读/写请求。
Cassandra 中的数据复制
在 Cassandra 中,集群中的一个或多个节点充当给定数据片段的副本。如果检测到某些节点响应了过期值,Cassandra 将向客户端返回最新值。返回最新值后,Cassandra在后台执行读取修复以更新过时的值。
下图展示了Cassandra如何在集群中的节点之间使用数据复制来确保无单点故障的示意图。
注- Cassandra 在后台使用Gossip 协议来允许节点相互通信并检测集群中的任何故障节点。
Cassandra的组件
Cassandra 的关键组件如下 -
节点- 它是存储数据的地方。
数据中心- 它是相关节点的集合。
集群- 集群是包含一个或多个数据中心的组件。
提交日志- 提交日志是 Cassandra 中的崩溃恢复机制。每个写操作都会写入提交日志。
Mem-table - mem-table 是内存驻留数据结构。提交日志后,数据将写入mem-table。有时,对于单列族,会有多个内存表。
SSTable - 它是一个磁盘文件,当其内容达到阈值时,数据将从内存表中刷新到该文件。
布隆过滤器- 这些只不过是快速的、不确定的算法,用于测试元素是否是集合的成员。它是一种特殊的缓存。每次查询后都会访问布隆过滤器。
Cassandra 查询语言
用户可以使用 Cassandra 查询语言 (CQL) 通过其节点访问 Cassandra。CQL 将数据库(Keyspace)视为表的容器。程序员使用cqlsh:使用 CQL 或单独的应用程序语言驱动程序的提示。
客户端访问任何节点进行读写操作。该节点(协调器)在客户端和保存数据的节点之间充当代理。
写操作
节点的每个写入活动都会被节点中写入的提交日志捕获。稍后数据将被捕获并存储在内存表中。每当mem-table满了,数据就会被写入SStable数据文件。所有写入都会自动分区并在整个集群中复制。Cassandra 定期合并 SSTable,丢弃不必要的数据。
读操作
在读取操作期间,Cassandra 从内存表中获取值并检查布隆过滤器以找到保存所需数据的适当 SSTable。