【发布时间】:2015-10-16 10:32:20
【问题描述】:
Cassandra 是否支持单向复制?假设我有 2 个 DC,DC1 和 DC2。实时数据仅写入 DC1,异步复制发生在 DC2。现在有没有办法,如果我在 DC2 中对相同的数据进行一些写入,它不会在 DC1 中复制?
【问题讨论】:
标签: cassandra
Cassandra 是否支持单向复制?假设我有 2 个 DC,DC1 和 DC2。实时数据仅写入 DC1,异步复制发生在 DC2。现在有没有办法,如果我在 DC2 中对相同的数据进行一些写入,它不会在 DC1 中复制?
【问题讨论】:
标签: cassandra
没有单向复制的概念。如果您的复制因子为 2,那么它将在任意两个节点中复制数据。您正在使用 DC1 和 DC2,那么您必须使用“NetworkTopologyStrategy”并为每个 DC 定义复制因子。您的问题将使用“Snitch”工具自动解决,以确定数据存储在两个 DC 的不同节点中。
【讨论】:
当您create a keyspace时,此功能可用
假设您希望在两个数据中心上复制键空间 1,在一个数据中心上复制键空间 2:
这会将您的数据复制到一个数据中心:
CREATE KEYSPACE keyspace1 WITH REPLICATION = { 'class' : 'NetworkTopologyStrategy', 'datacenter1' : 1 };
这在两个数据中心上:
CREATE KEYSPACE keyspace2
WITH REPLICATION = {'class' : 'NetworkTopologyStrategy', 'datacenter1' : 1, 'datacenter2' : 1};
【讨论】:
没有单向复制的概念。您有几个选择:
1) 在写入 DC2 时使用低一致性级别 (LOCAL_*),因此应用不会阻止复制到 DC1
2) 将 dcs 保持在单独的环中,并与 stable loader 同步批量加载
【讨论】: