我有两个DC:
DC1:
-
Node1:RAC1
-
Node2:RAC1
DC2:
- Node3:RAC1
我正在使用 GossipingPropertyFileSnitch 并且我已经删除了文件 cassandra-topology.properties 并且仅对每个节点使用带有以下配置的cassandra-rackdc.properties:
DC = DC1
架= RAC1
prefer_local =真
在DC2上创建如下所示的键空间:
CREATE KEYSPACE "test_rf"
WITH REPLICATION = {
'class' : 'NetworkTopologyStrategy',
'DC1' : 0
'DC2' : 1
};
我假设这个密钥空间 should not 被复制(我理解为甚至没有看到) DC1: Node1 and Node2 .
但是,我可以在DC1的每个节点中看到键空间 . 此外,我可以看到在DC2上创建的任何表复制到DC1 .
有人可以解释为什么会这样吗?或者我完全错过了什么!
1 回答
它只有在Cassandra环的两个数据中心上创建的关键空间和表定义的元数据 .
它不是到处复制的实际数据 . 这可以通过登录到各个节点并检查数据目录来确认 . 实际上文件夹可能已经创建,但是你不应该在keypace / table /目录中看到任何sstable文件 .
实际上,您可以从任何数据中心读取/写入该表 . 当您从DC1读取/写入时,它实际上从DC2提供数据 .