Cassandra 源 -> 接收器复制
Cassandra source -> sink replication
有可能在数据中心 (DC) 之间组织一种复制方式。
假设我们有两个 DC:A 和 B。
我希望将写入 DC A 中节点的所有数据复制到 DC B,但是写入 DC B 的 none 数据应该转到 A。
Cassandra 有可能吗?
您可以通过使用两个键空间来接近它。在 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'};
使用第二个键空间,您实际上可以向数据中心 A 中的节点发出写入,数据将被路由到 B 并仅存储在那里。
有可能在数据中心 (DC) 之间组织一种复制方式。 假设我们有两个 DC:A 和 B。 我希望将写入 DC A 中节点的所有数据复制到 DC B,但是写入 DC B 的 none 数据应该转到 A。 Cassandra 有可能吗?
您可以通过使用两个键空间来接近它。在 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'};
使用第二个键空间,您实际上可以向数据中心 A 中的节点发出写入,数据将被路由到 B 并仅存储在那里。