据我所知,Apache Helix允许动态集群扩展/收缩(例如,添加/失败/删除物理节点)。但是,在单个物理节点无法处理单个分区副本的情况下,我需要将分区拆分为两个。我知道我们需要预先估计工作量,因此我们可以预先设置足够数量的分区。然而,随着流量不可预测地增加,几乎不可能进行这样的预估。谁能告诉我Helix是否支持重新分区开箱即用?如果我需要对其进行自定义以添加重新分区功能,那么工作量有多大以及原则上如何进行。我想快速估算一下。感谢
答案 0 :(得分:0)
Helix不支持开箱即用的分区拆分/合并。在不了解底层系统的情况下,我们无法提出支持这一点的通用方法。
话虽如此,可以使用Helix提供的原语构建自定义解决方案。如果您可以提供有关系统的其他信息,我可能会提出建议。
答案 1 :(得分:0)
我建议从大量(逻辑)分区开始,并为每个节点分配多个分区。当服务需要更多资源时,添加节点并将一些分区从现有节点移动到新节点。 例如,假设您从50个节点开始,您将工作负载空间拆分为50000个逻辑分区,并为每个节点分配1000个分区。然后,当增加到75个节点时,重新分配。因此每个节点将有667个分区。 根据实际情况,您可能希望最小化重新分配的分区,例如使用一致的散列算法。