1

我必须在其他地区添加新的 Cassandra 数据中心。现在这里的问题是以前的数据中心是 2.2.9 版本,我在新数据中心创建了新节点是 2.2.11。

在 nodetool 重建上,新数据中心的所有新节点都失败并出现错误

无法在键空间中找到足够的流式传输范围来源。

即使是系统键空间(如 system、system_traces、system_distributed)引起的此错误。

此系统键空间位于 SimpleStrategy 上。

为了搜索这个问题,我发现每个人都在谈论将策略更改为 NetworkTopology 。

但是,如果我不想在所有数据中心上保留副本,那么我为什么要更改拓扑(策略)。

在以前的 Cassandra 版本中,我从未见过这样的限制。

为了避免或忽略 nodetool 重建的这个问题,人们说要添加

-Dcassandra.consistent.rangemovement=false

但是对于添加每个新节点是否需要这样做?

这对重建命令上的其他键空间有什么影响。

4

2 回答 2

4

默认情况下,系统表带有“SimpleStrategy”。任何带有 SimpleStrategy 的键空间仅适用于单数据中心 Cassandra 集群。

多 DC 集群需要并建议使用 NetworkTopology。建议将 system_auth 和 system_distributed 等系统密钥空间更改为复制因子大于 1(理想 3)的 NetworkTopology 策略,并复制到集群中涉及的所有 DC。

应用程序密钥空间可以或可以复制到其他 DC。但是将其复制策略更改为 NetworkTopology 并仅复制到一个 DC 并没有什么坏处。

于 2017-10-13T20:33:35.700 回答
0

我已将系统的键空间拓扑更改为所有 DC 上复制因子为 2 的网络拓扑。

改变系统的拓扑结构并没有什么坏处。

在 cassandra 22X 版本的文档中没有提到任何地方。但在 30x 及更高版本的最新版本文档中,提到更改系统密钥空间的拓扑。

于 2017-10-14T10:26:27.027 回答