我有一个关于潜在场景的问题,想知道我们的假设是否正确。(使用 cassandra 3.x 和 DSE 5.x)
我们从文档中了解到,为了向集群添加一个新的(新鲜的)数据中心,我们需要像这样临时设置 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
?