我知道Apache Helix允许动态群集扩展/收缩(例如,添加/失败/删除物理节点)。但是,如果单个物理节点无法处理单个分区副本,则我需要将一个分区分为两个。我了解我们需要预测工作量,因此我们可以预先设置足够数量的分区。但是,随着流量不可预测的不可预测,几乎不可能进行这种预估计。谁能告诉我Helix是否支持重新分配盒子外?如果我需要自定义以添加电动功能,原则上的努力以及如何做到这一点。我想快速估算。谢谢
Helix不支持分区分开/合并开箱即用。在不了解基础系统的情况下,我们无法提出一种通用方式来支持这一点。
话虽如此,可以使用Helix提供的原始词来构建自定义解决方案。如果您可以提供有关系统的其他信息,我也许可以提出一些建议。
我建议从大量(逻辑)分区开始,然后分配每个节点多个分区。当服务需要更多资源时,添加节点并将某些分区从现有节点移至新节点。例如,假设您从50个节点开始,则将工作负载的空间划分为50000逻辑分区,并将1000个分区分配给每个节点。然后,当增加到75个节点时,重新分布。因此,每个节点将是667个分区。根据实际情况,您可能需要最大程度地减少重新分区的分区,例如使用一致的哈希算法。