如何使用密钥空间禁用 Cassandra 复制



我有一个Cassandra DB和一个键空间,其中包含一些我不想重复的表。我知道,Cassandra的一个关键特征是复制,但我不想复制。

我有 3 个数据中心:dc1、dc2、dc3

目前,我正在每个DC上创建这样的密钥空间:

CREATE KEYSPACE IF NOT EXISTS myKeyspace 
  WITH replication={'class':'NetworkTopologyStrategy', 'dc1': '1'};

据我了解,这意味着 dc1 将被复制到其他三个 DC 之一?如果我不想复制,这应该是什么样子?

CREATE KEYSPACE IF NOT EXISTS myKeyspace WITH replication={'class':'NetworkTopologyStrategy', 'dc1': '1'};

这意味着您在 dc1 上具有复制因子 1。所以你目前拥有的就是你想要的。复制因子为 1 意味着只有一个节点将保存数据,并且不会复制到其他任何地方。该数字不是针对多少副本,而是针对保存数据的节点数。

如果您希望将其复制到其他dc,则如下所示:

CREATE KEYSPACE IF NOT EXISTS myKeyspace WITH replication={'class':'NetworkTopologyStrategy', 'dc1': '1', 'dc2': '1', 'dc3': '3'};
这意味着 dc1 将在 1 个节点上有数据,

dc2 将在 1 个节点上有数据,dc1 将在 3 个节点上拥有数据

最新更新