Was ist ein Load Balancer? | Wie funktionieren Load Balancer?

Haben Sie sich jemals gefragt, wie eine Webanwendung skaliert werden kann, damit Millionen von Anwendern weltweit sie nutzen können? Um eine große Anzahl von Benutzeranfragen zu bedienen, mĂŒssen Webanwendungen ihre Dienste auf mehrere Instanzen verteilen. Dann fragen Sie sich vielleicht: Wie kann eine Anwendung die Benutzeranfragen gleichmĂ€ĂŸig verteilen, sodass alle Anfragen mit höchster Effizienz bearbeitet werden können? Die kurze Antwort darauf: Load Balancing. Die vollstĂ€ndige Antwort lautet
 nun, bitte nehmen Sie sich ein paar Minuten Zeit, um den Artikel durchzulesen! Sie erfahren alles ĂŒber das Load Balancing: was ein Load Balancer ist, wie er funktioniert, seine Vorteile, Methoden des Load Balancings und wie Sie einen Load Balancer fĂŒr Ihre AnwendungsfĂ€lle implementieren.

Was ist ein Load Balancer?

Ein Load Balancer ist ein HardwaregerĂ€t oder eine Softwareanwendung, das oder die fĂŒr die gleichmĂ€ĂŸige Verteilung der Anfragen auf mehrere Anwendungsinstanzen zustĂ€ndig ist. (Eine „Instanz” ist eine einzelne Bereitstellung einer Anwendung oder eines Dienstes auf einem Server.) Dadurch kann die Anwendung ein hohes Volumen an Anfragen effizient bewĂ€ltigen.

Wenn eine zusĂ€tzliche Anwendungsinstanz eingefĂŒhrt wird, verteilt der Load Balancer die Anfragen neu, um die neue Instanz einzubeziehen und so die Arbeitslast der bestehenden Instanzen zu verringern. Wenn eine Anwendungsinstanz ausfĂ€llt, werden alle Anfragen an die problematische Instanz auf andere operative Instanzen umverteilt. Dadurch ist die App hochverfĂŒgbar und fehlertolerant und bietet den Benutzern einen unterbrechungsfreien Dienst.

Load Balancer können in verschiedene Typen eingeteilt werden, je nachdem, wie sie eingehende Anfragen verwalten und neu verteilen. Die beiden primÀren Typen sind Network Load Balancer und Application Load Balancer. Eine andere Art der Kategorisierung ist die nach der physikalischen Art. In diesem Fall unterteilen wir sie in Hardware- und Software-Load Balancer. Schauen wir uns alle diese Möglichkeiten im Detail an.

Network Load Balancer

Network Load Balancer leiten die Anfragen auf einer Transportschicht, Schicht 4 des OSI-Modells (Open System Interconnection), weiter. Der Weiterleitungsmechanismus basiert ausschließlich auf Netzwerkattributen, wie den IP-Adressen der Clients und den entsprechenden Anwendungsinstanzen.

Network Balancer berĂŒcksichtigen den Inhalt der Anfragen nicht, wenn sie diese an die Anwendungsinstanzen weiterleiten, wodurch sie bei der Neuverteilung der Anfragen niedrige Latenzen erzielen können. Network Load Balancer eignen sich hervorragend fĂŒr Anwendungen mit extremen Leistungsanforderungen, wie z.B. Streaming– oder Spieleanwendungen.

Application Load Balancer

Application Load Balancer leiten die Anfragen auf der Anwendungsschicht weiter, die auch als Schicht 7 des OSI-Modells bekannt ist. Sie untersuchen den Inhalt der Anfragen, unter anderem HTTP-Header, Anforderungspfade oder Anfragemethoden. Auf diese Weise kann der Application Load Balancer die Anfragen flexibel auf verschiedene Anwendungsinstanzen verteilen, um den GeschÀftsanforderungen gerecht zu werden.

App Load Balancer eignen sich fĂŒr E-Commerce-Anwendungen und Anwendungen in sozialen Netzwerken, die UnterstĂŒtzung fĂŒr benutzerdefinierte HTTP-Antworten und IntegritĂ€tsprĂŒfungen fĂŒr die Anwendungsinstanzen, aber keine extrem niedrigen Latenzzeiten benötigen.

Hardware Load Balancer

Die Kategorien Network- und Application Load Balancer basieren darauf, wie sie eingehende Anfragen verwalten und neu verteilen.

Hardware Load Balancer sind speziell entwickelte GerĂ€te, die die Anfragen zwischen den Anwendungsinstanzen neu verteilen. Sie werden hĂ€ufig in der Infrastruktur vor Ort neben den Netzwerksystemen und Anwendungsservern des Unternehmens eingesetzt. Hardware Load Balancer sind eine gute Wahl fĂŒr Anwendungen, die alle Daten in selbstverwalteten Servern speichern möchten oder eine individuelle Anpassung an die Hardware bei der Weiterleitung der Anfragen an die Zielinstanzen benötigen. Sie bieten außerdem erweiterte Sicherheitsoptionen.

Vorteile der Load Balancer

Ein Load Balancer kann die Leistung von Anwendungen auf verschiedene Art und Weise verbessern, z. B. durch Skalierbarkeit, Kostenreduzierung, VerfĂŒgbarkeit und Geschwindigkeit der Anfrageverarbeitung. Schauen wir uns alle diese Möglichkeiten einmal genauer an.

Skalierbarkeit

Wenn mehr Benutzeranfragen an die Anwendungsserverinstanzen gesendet werden, ist die CPU-Auslastung der Serverinstanzen hoch.

Eine E-Commerce-Anwendung wĂŒrde von der Skalierbarkeit profitieren, die Load Balancer bieten. Normalerweise steigt das Volumen der Benutzeranfragen fĂŒr E-Commerce-Anwendungen wĂ€hrend der Black Friday-VerkĂ€ufe weit ĂŒber das normale Maß hinaus an.

Hohe VerfĂŒgbarkeit

Wenn eine Anwendungsinstanz ausfĂ€llt, leitet der Load Balancer die Anfragen an andere Instanzen weiter, so dass der Endbenutzer keine Fehler oder Unterbrechungen des Dienstes feststellen kann. Der Load Balancer trĂ€gt dazu bei, die HochverfĂŒgbarkeit einer Anwendung zu gewĂ€hrleisten, indem er problematische Instanzen umgeht.

Wie funktioniert das Load Balancing

Um ein Load Balancing-System einzurichten, das Anfragen effektiv an die Anwendungsinstanzen weiterleitet, mĂŒssen Sie zunĂ€chst verstehen, wie ein Load Balancer funktioniert. Lassen Sie uns die inneren VorgĂ€nge des Load Balancings betrachten und einige beliebte Methoden des Load Balancings begutachten.

Wie funktioniert ein Load Balancer?

Load Balancer verwenden verschiedene Algorithmen und Kombinationen. Die Algorithmen hĂ€ngen von der KomplexitĂ€t und den Funktionen des jeweiligen Load Balancers ab. Ein einfacher Load Balancer verwendet in der Regel einen Algorithmus namens Round Robin, um Anfragen den Anwendungsinstanzen zuzuweisen. Der Round Robin-Algorithmus verteilt die Anfragen nacheinander an die Anwendungsinstanzen, was zu einer gleichmĂ€ĂŸigen Lastverteilung fĂŒhrt. Keine der Anwendungen wird so ĂŒbermĂ€ĂŸig belastet.

Nehmen wir an, Sie haben drei Anwendungsinstanzen. Die erste Benutzeranfrage wird an die 1. Instanz gesendet. Die zweite Benutzeranfrage wird an die 2. Instanz gesendet. Die dritte Anfrage wird an die 3. Instanz gesendet. Und die vierte Anfrage wird an die 4. Instanz gesendet. In diesem Fall haben wir vier Instanzen zur VerfĂŒgung. Die Anfrage Nr. 5 wird also an die 1. Anwendungsinstanz gesendet und so weiter.

Ein Round Robin-Algorithmus leitet eingehende Benutzeranfragen (links) an Anwendungsintanzen (rechts) weiter. Der Load Balancer weist den Anwendungsinstanzen zyklisch Anfragen zu und kehrt zur ersten Instanz zurĂŒck, nachdem jede Instanz eine Anfrage erhalten hat
Abbildung 1: Demonstration der Funktionsweise eines Load Balancers

Anstatt direkt mit dem Anwendungsserver zu interagieren, senden die Endnutzer Ihrer Anwendung Anfragen an den Load Balancer.

Was sind die Komponenten eines Load Balancers?

Ein typischer Load Balancer besteht aus vier Teilen:

  1. Virtuelle IP: Dies ist die eindeutige digitale Adresse des Load Balancers, an die der Client Anfragen an den Load Balancer adressieren kann.
  2. Netzwerkprotokolle: Verschiedene Arten von Load Balancern unterstĂŒtzen unterschiedliche Netzwerkprotokolle. Ein Network Load Balancer unterstĂŒtzt zum Beispiel das TCP- oder UDP-Protokoll, wĂ€hrend ein Application Load Balancer die Protokolle HTTP und HTTPS unterstĂŒtzt.
  3. Load Balancing-Algorithmen: Load Balancer verwenden verschiedene Algorithmen, wie Round Robin und IP Hash, um zu bestimmen, an welche Anwendungsinstanz sie die Anfrage des Clients weiterleiten sollen.
  4. StatusĂŒberwachung: Der Load Balancer ĂŒberprĂŒft routinemĂ€ĂŸig den IntegritĂ€tsstatus der einzelnen Anwendungsinstanzen.

Methoden zum Load Balancing

Neben dem bereits besprochenen Round Robin-Algorithmus gibt es noch andere Methoden und Algorithmen fĂŒr das Load Balancing, darunter Weighted Round Robin und ressourcenbasierte Methoden. Im Allgemeinen lassen sich die Load Balancing-Methoden in zwei Kategorien einteilen: statisches Load Balancing und dynamisches Load Balancing. Schauen wir uns die beiden Methoden einmal genauer an.

Statisches Load Balancing

Beim statischen Load Balancing leitet der Load Balancer die Anfragen an die Anwendungsinstanzen weiter, ohne den aktuellen Status dieser Anwendungsinstanzen zu prĂŒfen. So lĂ€sst sich das statische Load Balancing leicht umsetzen. Der Nachteil des statischen Load Balancings ist der, dass sie sich nicht an den Status der Anwendungsinstanzen anpassen kann, die zur Laufzeit sehr unterschiedlich sein können, was die Leistung und damit die Benutzererfahrung eventuell beeintrĂ€chtigt. Einige Beispiele fĂŒr das statische Load Balancing sind:

  • Round Robin: Der Load Balancer leitet die Anfragen zyklisch an die App-Instanzen weiter und verteilt die Anfragen gleichmĂ€ĂŸig auf die Instanzen.
  • Weighted Round Robin: Jeder Anwendungsinstanz wird eine Gewichtung zugewiesen, die als Indikator fĂŒr ihre VerarbeitungskapazitĂ€t oder PrioritĂ€t dient. Der Load Balancer leitet die Anfragen entsprechend der Gewichtung an die Anwendunginstanzen weiter. Je höher die Gewichtungsbewertung der Anwendungsinstanz, desto mehr Anfragen werden an diese Instanz weitergeleitet.
  • IP-Hash: Der Load Balancer generiert einen eindeutigen Hash-SchlĂŒssel, der sowohl auf der Client-IP als auch auf der IP der App-Instanz basiert. Diese Methode ermöglicht es dem Kunden, ĂŒber mehrere Sitzungen hinweg wiederholt mit derselben Anwendungsinstanz zu interagieren. Der Load Balancing-Alogorithmus IP-Hash eignet sich fĂŒr Anwendungen, die dauerhafte Sitzungen zwischen dem Client und der Anwendungsinstanz benötigen, weil sie eine kontinuierliche, nahtlose Erfahrung fĂŒr den Nutzer gewĂ€hrleisten.

Dynamisches Load Balancing

Beim dynamischen Load Balancing leitet der Load Balancer die Anfragen an die Anwendungsinstanzen weiter, ohne den aktuellen Status dieser Anwendungsinstanzen zu prĂŒfen. Daher können sich die dynamischen Load Balancer an die laufenden Änderungen der Anwendungsinstanzen anpassen und sind tendenziell effizienter als die statischen Load Balancer. Der dynamische Lastausgleich ist jedoch komplizierter zu implementieren. Einige Beispiele fĂŒr das statische Load Balancing sind:

  • Least Connection (Geringste Verbindungen): Bei der Load-Balancing-Methode Least Connection werden die Anfragen mit den wenigsten Verbindungen an die Anwendungsinstanz mit der geringsten Anzahl aktiver Verbindungen weitergeleitet.
  • Weighted Least Connection (Gewichtete kleinste Verbindung): Bei der Load Balancing-Methode Weighted Least Connection werden die Anfragen an die App-Instanz weitergeleitet, basierend auf der Anzahl der aktiven Verbindungen und der Gewichtung dieser Instanz. Wenn es zum Beispiel drei Anwendungsinstanzen mit der gleichen Anzahl aktiver Verbindungen gibt, wird diejenige mit der höchsten Gewichtungsbewertung fĂŒr die Weiterleitung der Anfrage ausgewĂ€hlt.

Load Balancer in der Cloud

Die Einrichtung und Wartung einer Gruppe von Load Balancern ist eine anspruchsvolle Aufgabe. FĂŒr eine effiziente Einrichtung und Verwaltung der Load Balancer ist Folgendes erforderlich:

  • VerfĂŒgbarkeit einer Reihe von Load Balancing-Algorithmen zur UnterstĂŒtzung unterschiedlicher interner AnwendungsfĂ€lle
  • Überwachung des Systemstatus auf die Anwendungsinstanzen
  • Konfigurieren von Zugriffskontrollen und Schutz fĂŒr Ihre Load Balancer, um bösartige Zugriffe aus dem öffentlichen Internet zu verhindern
  • Sicherstellung der Skalierbarkeit Ihres Load Balancers begleitend zum Wachstum Ihrer Anwendungsanforderungen

Load Balancer von Gcore

Wir bei Gcore kennen die Schwierigkeiten und Herausforderungen, die mit der Einrichtung eines Load Balancers von Grund auf verbunden sind. Es gibt eine Vielzahl von Optionen, und Ihre Wahl wirkt sich direkt auf die Leistung und die Benutzererfahrung aus — zum Guten oder zum Schlechten. Der Load Balancer von Gcore löst diese Herausforderungen und bietet integrierte Funktionen zur UnterstĂŒtzung:

  • Verschiedene Load Balancing-Algorithmen wie Round Robin, Least Connections und die Quell-IP, sodass Sie den fĂŒr Sie passenden Algorithmus auswĂ€hlen können
  • Einrichtung nicht integerer und integerer Schwellenwerte
  • Einrichtung der Firewall des Load Balancers, mit der Sie zur Erhöhung der Sicherheit die Regeln fĂŒr den ein- und ausgehenden Traffics festlegen können

Wenn Sie mehr darĂŒber erfahren möchten, wie Sie den Gcore Load Balancer einrichten, konfigurieren und Fehler beheben können, werfen Sie bitte einen Blick auf unsere Wissensseite.

Fazit

Bei einer wachsenden Zahl von Benutzern, die auf Ihre Anwendung zugreifen, ist ein Load Balancer, der die Benutzeranfragen gleichmĂ€ĂŸig auf Ihre Instanzen verteilt, fĂŒr eine schnelle Abarbeitung der Anfragen und eine positive Benutzererfahrung unerlĂ€sslich. Die Einrichtung eines Load Balancers, der die Benutzeranfragen gleichmĂ€ĂŸig verteilt, ist jedoch sehr arbeitsaufwĂ€ndig. Der Gcore Load Balancer hilft Ihnen, die Arbeitslast Ihrer Benutzer auf die eleganteste und effizienteste Weise zu verteilen.

Melden Sie sich an, um die neuesten Updates, Nachrichten und Funktionen zu erhalten.

Wir respektieren Ihren Posteingang und bemĂŒhen uns, Spam zu vermeiden