it-swarm-eu.dev

Was bedeutet horizontale Skalierung?

Im Datenbankkontext bin ich auf horizontale Skalierbarkeit als einen der Vorteile der NOSQL-Datenbanken gestoßen. Was bedeutet der Begriff?

Wie würde es mit vertikaler Skalierung verglichen werden?

23
Lazer

Horizontale Skalierung
Die horizontale Skalierung baut im Wesentlichen auf und nicht auf. Sie kaufen keinen größeren, kräftigeren Server und verlagern Ihre gesamte Last darauf. Stattdessen kaufen Sie mehr als 1 zusätzliche Server und verteilen Ihre Last auf diese.

Die horizontale Skalierung wird verwendet, wenn Sie mehrere Instanzen gleichzeitig auf Servern ausführen können. Normalerweise ist es viel schwieriger, von 1 Server auf 2 Server zu wechseln, als von 2 auf 5, 10, 50 usw.

Sobald Sie die Probleme beim Ausführen paralleler Instanzen behoben haben, können Sie Umgebungen wie Amazon EC2, den Cloud-Service von Rackspace, GoGrid usw. optimal nutzen, um Instanzen je nach Bedarf hoch- und runterzufahren und so die Kosten für die Serverleistung zu senken Sie verwenden nicht nur, um diese Spitzenlasten abzudecken.

Relationale Datenbanken sind eines der schwierigeren Elemente, um das vollständige Lesen/Schreiben parallel auszuführen.

Ich habe gesehen, wie Damien Katz bei StackOverflow DevDays in Austin über CouchDB gesprochen hat, und einer seiner Hauptschwerpunkte für seine Erstellung waren diese parallelen Instanzen. Da dies seit dem ersten Tag ein Schwerpunkt ist, wäre es viel besser in der Lage, die horizontale Skalierung zu nutzen.

Vertikale Skalierung
Vertikale Skalierung ist das Gegenteil, aufbauen statt ausbauen. Kaufen Sie die stärkste Hardware, die Sie sich leisten können, und legen Sie Ihre Anwendung, Datenbank usw. darauf.

reale Welt
Natürlich haben beide ihre Vor- und Nachteile. Oft wird eine Kombination dieser beiden für eine endgültige Lösung verwendet.

Möglicherweise verfügen Sie über Ihre Primärdatenbank, in die jeder Echtzeitdaten auf einer großen Hardware schreibt und liest. Dann haben Sie schreibgeschützte Kopien der Datenbank für umfangreichere Datenanalysen und Berichte verteilt, bei denen es nicht so wichtig ist, auf dem neuesten Stand zu sein. Dann wird die Front-End-Webanwendung möglicherweise auf mehreren Webservern hinter einem Load Balancer ausgeführt.

24
ManiacZX

Die horizontale Skalierung eignet sich hervorragend, wenn Sie eine Anwendung benötigen, die eine große Anzahl von Schreibvorgängen und parallelen Lesevorgängen verarbeiten muss. Stellen Sie sich eine Website vor, die sehr viel Verkehr hat und diese protokollieren muss oder eine große Anzahl von Ereignissen protokollieren muss.

Ich denke, der größte Pluspunkt ist, dass die horizontale Skalierung mit Standardhardware durchgeführt werden kann und dass Sie mit der vertikalen Skalierung und dem Versuch, Ihre vorhandenen Boxen zu vergrößern, nur so viel tun können.

Herkömmliche RDBMS scheitern hier aus einer Vielzahl von Gründen (einschließlich der Tatsache, dass sie ACID sind) und NoSQL-Lösungen Excel hier, weil sie leicht horizontal skaliert werden können - aber das ist eine andere Geschichte (RDBMS/SQL vs NoSQL.)

0
Suman

Einige Leute in der Branche verwenden unterschiedliche Begriffe, um dasselbe zu bedeuten:

  • scale Up = vertikale Skalierung
  • skalieren = horizontale Skalierung
0
Toddius Zho