我想试用 Cassandra Cluster。我的主要问题是关于可扩展性。
Cassandra 集群中的每个节点都有相同的数据副本。所以当我总共有 1 TB 并且有 5 个节点时 -> 5TB。
这在某个时候会变得巨大。我如何扩展 Cassandra 以便可以分布存储?我需要再次手动分片吗?
我想试用 Cassandra Cluster。我的主要问题是关于可扩展性。
Cassandra 集群中的每个节点都有相同的数据副本。所以当我总共有 1 TB 并且有 5 个节点时 -> 5TB。
这在某个时候会变得巨大。我如何扩展 Cassandra 以便可以分布存储?我需要再次手动分片吗?
数据根据表的分区键值自动分布在集群中。因此,您需要注意创建正确的数据模型——不要有拥有数十万行的分区等。
如果数据模型是正确的,那么您可以通过添加新节点来扩展 Cassandra,然后数据将在节点之间重新分配。
Cassandra 确实使用 murmur3partitioner 在集群节点之间以分布式方式存储其数据(您的 1 tb 将在每个节点上分配 0.2 tb)。如果您不希望 1 tb 数据变成 5 tb,请将复制因子从 5 更改为所需的较低值,并在所有节点上运行 nodetool cleanup。