【发布时间】:2017-06-23 19:03:38
【问题描述】:
我有一个关于潜在场景的问题,想知道我们的假设是否正确。 (使用 cassandra 3.x 和 DSE 5.x)
我们从docs 了解到,为了向集群添加一个新的(新鲜的)数据中心,我们需要像这样临时设置 ReplicationFactor:
{'class' : 'NetworkTopologyStrategy', 'DC1' : 3, 'DC2' : 0 }
其中 DC1 是当前正在运行的数据中心,而 DC2 是我们正在添加的数据中心。 这项测试帮助我们了解了数据流从现有直播圈到全新直播圈的影响。
现在到我们的假设场景,即能够开始复制最初仅复制到一个 DC 的键空间,现在保存到其他当前正在运行的 DC。
创建键空间时:
CREATE KEYSPACE Foo WITH REPLICATION = {'class' : 'NetworkTopologyStrategy', 'US' : 2, 'EU' : 0};
然后,当业务需求发生变化时:
ALTER KEYSPACE Foo WITH REPLICATION = {'class' : 'NetworkTopologyStrategy', 'US' : 2, 'EU' : 2};
在所有 DC 为 0 的应用程序中定义所有新键空间是否被认为更安全,以便可以在某个时候修改该值。并且更改该复制因子是否足以触发密钥空间到其他数据中心的流式传输 - 还是我们还需要运行nodetool rebuild?
【问题讨论】:
标签: cassandra distributed-database