我知道Apache Helix允许动态集群扩展/收缩(例如,添加/失败/删除物理节点)。但是,在单个物理节点无法处理单个分区副本的情况下,我需要将一个分区一分为二。我知道我们需要预先估计工作负载,这样我们就可以预先设置足够数量的分区。然而,由于流量的增长是不可预测的,因此几乎不可能进行这样的预先估计。谁能告诉我Helix是否支持开箱即用的重新分区?如果我需要定制它来添加重新分区功能,那么原则上需要多大的工作量以及如何完成它。我想要一个快速的估算。谢谢
发布于 2016-12-06 14:19:04
Helix不支持开箱即用的分区拆分/合并。在不了解底层系统的情况下,我们无法想出一种通用的方法来支持这一点。
话虽如此,使用Helix提供的原语构建自定义解决方案是可能的。如果你能提供更多关于你的系统的信息,我也许能给你一些建议。
发布于 2016-12-21 09:01:45
我建议从大量(逻辑)分区开始,并为每个节点分配多个分区。当服务需要更多资源时,添加节点,并将一些分区从现有节点移动到新节点。例如,假设您从50个节点开始,将工作负载的空间划分为50000个逻辑分区,并为每个节点分配1000个分区。然后,当增加到75个节点时,重新分配。因此,每个节点有667个分区。根据实际情况,您可能希望最小化重新分配的分区,例如使用一致的散列算法。
https://stackoverflow.com/questions/40981743
复制相似问题