0

Ich verstehe, dass Apache Helix dynamische Cluster-Erweiterung/Schrumpfung ermöglicht (z. B. Hinzufügen/Fehler/Entfernen von physischen Knoten). Wenn jedoch ein einzelner physischer Knoten nicht mit einem Replikat einer einzelnen Partition umgehen kann, muss ich eine Partition in zwei teilen. Ich verstehe, dass wir die Arbeitslast vorausberechnen müssen, damit wir im Vorfeld eine ausreichende Anzahl von Partitionen einrichten können. Da jedoch der Verkehr unvorhersehbar steigt, ist es nahezu unmöglich, eine solche Vorausschätzung durchzuführen. Kann mir jemand sagen, ob Helix die Neupartitionierung von Out-of-Box unterstützt? Wenn ich es anpassen muss, um die Neupartitionierungsfunktionalität hinzuzufügen, wie groß ist der Aufwand und wie wird es im Prinzip ausgeführt? Ich möchte eine schnelle Schätzung haben. DankeUnterstützt Apache Helix Partition Split und Merge?

Antwort

0

Helix unterstützt Partition Splitting/Merging nicht aus der Box. Wir konnten keine generische Methode finden, dies zu unterstützen, ohne das zugrundeliegende System zu verstehen.

Dennoch ist es möglich, eine benutzerdefinierte Lösung mit den von Helix bereitgestellten Grundelementen zu erstellen. Wenn Sie zusätzliche Informationen zu Ihrem System bereitstellen können, kann ich Ihnen möglicherweise etwas vorschlagen.

0

Ich würde vorschlagen, mit einer hohen Anzahl von (logischen) Partitionen zu beginnen und jedem Knoten mehrere Partitionen zuzuordnen. Wenn der Dienst mehr Ressourcen benötigt, fügen Sie Knoten hinzu und verschieben Sie einige Partitionen von vorhandenen Knoten zu den neuen Knoten. Wenn Sie beispielsweise mit 50 Knoten beginnen, teilen Sie den Arbeitsspeicher auf 50000 logische Partitionen auf und weisen jedem Knoten 1000 Partitionen zu. Wenn Sie dann auf 75 Knoten ansteigen, verteilen Sie sie neu. Es wären also 667 Partitionen pro Knoten. Abhängig vom tatsächlichen Szenario möchten Sie möglicherweise die neu zugewiesenen Partitionen minimieren, z. B. mit einem konsistenten Hashalgorithmus.

Verwandte Themen