绑定完请刷新页面
取消
刷新

分享好友

×
取消 复制
初识GaussDB(for Cassandra)基础架构
2022-05-11 16:43:53

架构原理

Cassandra旨在处理多个节点之间的大数据工作负载且无单节点故障。

Cassandra通过在同构节点之间采用p2p分布式系统来解决故障问题,其中数据分布在集群中的所有节点上。通过点对点Gossip通信协议,集群中的每个节点与其他节点频繁交换状态信息。每个节点上都有一个顺序写入的commit log用来记录写入操作,以确保数据实现持久化。然后将数据编入索引并写入内存结构,称为内存表(memtable),类似于回写缓存。当内存结构写满数据时,则把数据存储到SSTable数据文件中的磁盘。所有的写入操作会在整个集群中自动分区和备份。Cassandra通过一个称为压缩(compaction)的过程定期整合SSTable,丢弃标记为删除的旧数据。为确保整个集群中所有数据的一致性,采用了各种修复措施。

Cassandra是一个分区式行存储数据库,行被组织成具有所需主键的表。Cassandra架构允许任何授权用户连接到任一数据中心的任一节点,并使用CQL语言访问数据。为了方便使用,CQL使用与SQL类似的语法并与数据表一起使用。开发者可以通过cqlsh访问CQL。通常,对于由不同表组成的应用程序,一个集群对应一个密钥空间。

客户端读写请求可以发送到集群中的任一节点。当客户端连接到有请求的节点时,该节点用作该客户端的协调器(coordinator)。作为客户端应用程序和被请求数据所在的节点之间的代理,协调器根据集群的配置确定环(ring)中的哪些节点应该获得请求。

关键组件

● Gossip

Gossip是用于发现和共享关于Cassandra集群中其他节点的位置和状态信息的p2p通信协议。每个节点将Gossip信息持久化到本地,以便在节点重新启动时使用该信息。

● Partitioner分区器

Partitioner分区器用于确定哪个节点将接收到数据的个副本,以及如何在集群中的其他节点分发其他副本。每一行数据都由主键标识,该主键可以与其分区键相同,但也可以包括其他集群列。分区器是一个散列函数,从一个行的主键派生出一个令牌(token)。分区器使用令牌值来确定集群中的哪些节点接收该行的副本。

Murmur3 Partitioner是新Cassandra集群的默认分区策略,在多数情况下,也是新集群的正确选择。

您必须设置分区器并为每个节点分配一个num _ tokens值。令牌数量取决于系统的硬件能力。如果不使用虚拟节点(vnode),使用initial _ token设置即可。

● 复制因子

跨集群的副本总数。复制因子1意味着一个节点上的每一行只有一个副本。复制因子2表示每行有两个副本,每个副本在不同的节点上。没有主副本,所有副本同样重要。您可以为数据中心设置复制因子的个数。一般情况下,设置复制策略大于1,但不要超过集群中的节点数量。

● 副本放置策略

Cassandra将数据的副本存储在多个节点上,以保证可靠性和容错性。复制策略决定将副本放置在哪些节点上。

推荐使用NetworkTopologyStrategy,以便将来扩展到多个数据中心。

创建密钥空间(keyspace)时,必须确定副本放置策略和需要的副本数量。

● ** Snitch**

Snitch将机器组划分到数据中心和机架(拓扑),复制策略根据拓扑结构放置副本。

创建集群时必须配置snitch。所有的snitch都使用一个动态snitch层用来监控性能并选择佳的副本读取数据。默认情况,snitch为开启状态,推荐在大多数部署中使用。您需要在Cassandra.yaml配置文件中配置各节点的动态snitch阈值。

默认情况下,SimpleSnitch不识别数据中心或机架信息,用于单个数据中心部署或公有云中的单个区域。对于生产环境,推荐使用GossipingPropertyFileSnitch,它定义了节点的数据中心和机架的信息,并通过gossip将此信息传播到其他节点。

● cassandra.yaml配置文件

用于设置集群的初始化属性、表的缓存参数、调优和资源利用率、超时设置、客户端连接、备份和安全性的主要配置文件。

● 系统键空间表属性

可以以编程方式或使用客户端应用程序(如CQL)在每个键空间或表基础上设置存储配置属性。

来源 https://www.modb.pro/db/179992

分享好友

分享这个小栈给你的朋友们,一起进步吧。

GaussDB(for Cassandra)
创建时间:2022-03-21 14:40:17
GaussDB(for Cassandra)
展开
订阅须知

• 所有用户可根据关注领域订阅专区或所有专区

• 付费订阅:虚拟交易,一经交易不退款;若特殊情况,可3日内客服咨询

• 专区发布评论属默认订阅所评论专区(除付费小栈外)

技术专家

查看更多
  • itt0918
    专家
戳我,来吐槽~