Cassandra集群可以有偶数个节点吗?

Can Cassandra cluster have even number of nodes?

当前 运行 一个 3 节点集群,在键空间上具有复制因子 3。由于每个节点的大小接近 2TB,因此需要向集群添加更多节点。 我可以再向集群添加 1 个节点并拥有一个 4 节点集群,还是 集群是否始终需要具有奇数个节点? 当前对读取和读取都使用一致性级别 ONE写.

您可以在 Cassandra 集群中拥有偶数个节点。因此,您可以将另一个节点添加到集群中。如果你使用的是vnodes,那么会更容易,否则需要做很多工作来平衡集群。 还有一点,一致性级别 ONE 的读写会降低一致性。如果它适合您的用例,那很好,但一般建议是在生产系统上使用 QUORUM

您可以在集群中拥有任意数量的节点,特别是如果您没有使用 Cassandra 中的机架功能(所有节点都在同一个逻辑 C* 机架中)。

如果您使用的是 C* 机架,我们的建议是每个机架中的节点数量相等,以便负载分布在每个数据中心的机架之间平衡。

例如,如果您的应用键空间的复制因子为 3,并且您有 3 个机架,那么 DC 中的节点数应该是复制因子的倍数——3、6、9、12 等等在。这将允许您在每个机架中配置相同数量的节点。

这不是硬性要求,而是最佳做法,因此节点上的负载和数据量相等。干杯!