我在本地部署了一个 3 节点集群(使用 Docker)并创建了一个集合(noOfShards = 3 且replicationFactor = 1)。但是,当我在其中一个节点中创建文档时,它会在所有三个节点中复制。我预计它会根据我的分片键进行分发。
我不允许创建复制因子为 0 的集合。我的主要目的是根据 shard_key 对集合中的文档进行分片,以便它们均匀分布在 3 个节点中。我真的不关心复制。
知道我在这里做错了什么吗?
我个人认为你所做的是复制,这不是你想要为你的需求做的,你应该做的是分片,这在ArangoDB文档中非常清楚地强调:
https://docs.arangodb.com/3.11/deploy/architecture/data-sharding/
创建一个简单的分片集合
127.0.0.1:8529@_system> db._create("sharded_collection", { "numberOfShards": 3 });
简而言之,它允许您创建在集群中分片的集合,这基本上满足您的要求。
过程非常简单
此外,我强烈建议您阅读 Arango 集群学习中心 - 从长远来看,这将对您有很大帮助。
https://www.arangodb.com/arangodb-training-center/operations/