0

我知道Apache Helix允许动态集群扩展/收缩(例如添加/失败/删除物理节点)。但是,如果单个物理节点无法处理单个分区副本,则需要将分区分成两部分。我知道我们需要预先估计工作量,所以我们可以预先设置足够数量的分区。但是,随着流量不可预测地上升,几乎不可能做出这样的预估。任何人都可以告诉我Helix是否支持重新分区开箱即用?如果我需要对其进行定制以添加重新分区功能,那么原理上的努力程度和方法如何。我想有一个快速的估计。由于Apache Helix是否支持分区拆分和合并?

回答

0

螺旋不支持分区划分/合并开箱。我们无法想出一个通用的方法来支持这个,而不理解底层系统。

尽管如此,可以使用Helix提供的基元来构建自定义解决方案。如果您可以提供有关您的系统的其他信息,我可能会提出一些建议。

0

我建议先从大量的(逻辑)分区开始,然后为每个节点分配多个分区。当服务需要更多资源时,添加节点并将一些分区从现有节点移动到新节点。例如,假设您将从50个节点开始,您需要将工作负载的空间分割为50000个逻辑分区,并将1000个分区分配给每个节点。然后,当增加到75个节点时,重新分配。所以这将是每个节点667个分区。 根据实际情况,您可能希望最小化重新分配的分区,例如使用一致的哈希算法。