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