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
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.
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.
- 1. Verwendung von Apache Helix und Verwendung von Apache Mesos
- 2. Real-World-Beispiel von Apache Helix, Zookeeper, Mesos und Erlang?
- 3. RDD und Partition in Apache Spark
- 4. Merge und auszurichten Mittelzelle mit Apache poi
- 5. Apache Camel Split bereichern
- 6. Apache Spark-merge nach updateStateByKey()
- 7. Apache Drill unterstützt gespeicherte Prozedur und Funktion
- 8. Unterstützt Fortify Python, Scala und Apache Spark?
- 9. Unterstützt J2ME Apache Lucene?
- 10. Partition und Consumer Location nach Rebalance von Apache Kafka
- 11. Apache Camel 2.13.0 Split Splitter
- 12. Apache Kafka - KafkaStream auf Thema/partition
- 13. Helix in Matlab
- 14. Helix Drehachse in Matlab
- 15. Merge aliasByNode und aliasByMetric in Grafana unterstützt von Graphite
- 16. ORACLE EXCHANGE PARTITION und PARTITION INDIZES
- 17. Unterstützt Apache CXF TLS 1.2?
- 18. Apache Derby - Unterstützt es "MIT"
- 19. Unterstützt Liferay 6.2 apache Wicket?
- 20. Unterstützt Apache Commons HttpClient GZIP?
- 21. Apache Cordova unterstützt iOS-Version
- 22. Split ein Vektor auf einer anderen Partition auf Basis
- 23. Helix-Toolkit 3D-Modell drehen
- 24. Apache Camel Split Liste in größere Stücke
- 25. Apache Common Compress - Split Zip-Datei
- 26. SPLIT Befehl funktioniert nicht in Apache-Schwein
- 27. Apache Cassandra Mehrere Partition Keys oder Single Computed Key?
- 28. Apache Ignite vs Redis Cluster (Partition verwenden) vs andere Lösung
- 29. unterstützt Apache Camel-Atom-Komponente grundlegende Authentifizierung?
- 30. Split Zweig in zwei Filialen/Merge einen Zweig selektiv