Horizontale Skalierung bedeutet, dass Sie skalieren, indem Sie Ihrem Ressourcenpool mehr Computer hinzufügen, während vertikale Skalierung bedeutet, dass Sie skalieren, indem Sie einem vorhandenen Computer mehr Leistung (CPU, RAM) hinzufügen .
Eine einfache Möglichkeit, sich daran zu erinnern, besteht darin, sich eine Maschine auf einem Server-Rack vorzustellen. Wir fügen mehr Maschinen in horizontaler Richtung hinzu und fügen einer Maschine in vertikaler Richtung mehr Ressourcen hinzu .
In einer Datenbankwelt basiert die horizontale Skalierung häufig auf der Partitionierung der Daten, dh jeder Knoten enthält nur einen Teil der Daten. Bei der vertikalen Skalierung befinden sich die Daten auf einem einzelnen Knoten, und die Skalierung erfolgt über mehrere Kerne, dh die Verteilung der Last zwischen den Daten die CPU- und RAM-Ressourcen dieser Maschine.
Bei der horizontalen Skalierung ist es häufig einfacher, dynamisch zu skalieren, indem mehr Maschinen zum vorhandenen Pool hinzugefügt werden. Die vertikale Skalierung ist häufig auf die Kapazität einer einzelnen Maschine beschränkt. Eine Skalierung über diese Kapazität hinaus führt häufig zu Ausfallzeiten und einer Obergrenze.
Gute Beispiele für horizontale Skalierung sind Cassandra, MongoDB, Google Cloud Spanner . Ein gutes Beispiel für vertikale Skalierung ist MySQL - Amazon RDS (Die Cloud-Version von MySQL). Es bietet eine einfache Möglichkeit, vertikal zu skalieren, indem von kleinen zu größeren Maschinen gewechselt wird. Dieser Prozess ist häufig mit Ausfallzeiten verbunden.
In-Memory- Datenraster wie GigaSpaces XAP , Coherence usw. werden häufig sowohl für die horizontale als auch für die vertikale Skalierung optimiert, da sie nicht an die Festplatte gebunden sind. Horizontale Skalierung durch Partitionierung und vertikale Skalierung durch Multi-Core-Unterstützung.
Weitere Informationen zu diesem Thema finden Sie in meinen früheren Beiträgen:
Scale-out vs. Scale-up und die gemeinsamen Prinzipien hinter den NOSQL-Alternativen