Cassandra 架构

Wu Jun 2020-01-05 02:43:49
Categories: > Tags:

1 核心架构

1)Node

节点,存放数据的地方,Cassandra的基础设施。

2)datacenter
3)Cluster

集群,包含一个或多个数据中心。可跨越物理位置。

4)Commit log

所有数据首先写入 Commit log 以确保持久性。将所有数据刷新到 SSTable 后,可以对其进行存档,删除或回收。

5)SSTable

SSTable(sorted string table)是Cassandra定期写入 memtable 的不可变数据文件。 SSTable 仅能附加数据,并按顺序存储在磁盘上,为每个Cassandra表维护。

6)CQL Table

由表行提取的有序列的集合。此表由列组成,并具有主键。

2 关键组件

1)Gossip

一种点对点通信协议,用于发现和共享有关 Cassandra 集群中其他节点的位置和状态信息。 每个节点在本地持久保存 Gossip 信息,以便在节点重新启动时能立即使用。

2)Partitioner

Partitioner 确定数据的副本在节点之间的分发。

每个节点都有一个唯一的 Token,表明该节点分配的数据范围。Partitioner 是hash 函数,用于计算每个分区键的 token。

分区策略:

3)Replication factor

复制因子:集群中的副本数量,每个副本不在同一个节点。

4)Replica placement strategy

Cassandra在多个节点上存储数据的副本,以确保可靠性和容错能力。

复制策略确定放置副本的节点:

5)Snitch

Snitch 决定复制策略使用哪个数据中心和服务器的节点来放置副本。

Snitches 按实现分为三种: