可以在数据中心 (DC) 之间组织一种方式的复制。假设我们有两个 DC:A 和 B。我希望将写入 DC A 中节点的所有数据复制到 DC B,但是写入 DC B 的数据都不应该转到 A。Cassandra 可以吗?
1 回答
0
您可以通过使用两个键空间来接近它。在 Cassandra 中,键空间控制在每个数据中心中保留每个分区的副本数。
因此,对于您写入 A 并希望在 B 中复制的数据,您将在定义为在两个数据中心中复制的键空间中创建表,如下所示:
CREATE KEYSPACE both WITH replication = {
'class': 'NetworkTopologyStrategy', 'A': '1', 'B': '1'};
但是,如果您在 DC B 中写入此键空间,它也会将写入复制到 A。
然后,对于要写入 DC B 并且不将其复制到 A 的数据,您将在仅在 B 中保留副本的键空间中创建表,如下所示:
CREATE KEYSPACE bonly WITH replication = {
'class': 'NetworkTopologyStrategy', 'B': '1'};
使用第二个键空间,您实际上可以向 DC A 中的节点发出写入,数据将被路由到 B 并仅存储在那里。
于 2015-09-08T19:49:50.317 回答