Was ist Load Balancing? | Wie Load Balancer funktionieren

Load Balancing ist der Prozess der Verteilung des Traffics auf mehrere Server, um die Performance und Zuverlässigkeit eines Dienstes oder einer Anwendung zu verbessern.

Lernziele

Nach Lektüre dieses Artikels können Sie Folgendes:

  • Load Balancing definieren
  • Die zwei wichtigsten Kategorien von Load Balancing-Algorithmen erläutern
  • Wichtige Load Balancing-Konzepte wie Serverüberwachung und Failover verstehen

Ähnliche Inhalte


Möchten Sie noch mehr erfahren?

Abonnieren Sie theNET, Cloudflares monatliche Zusammenfassung der beliebtesten Einblicke in das Internet!

Lesen Sie die Cloudflare Datenschutzrichtlinie, um zu erfahren, wie wir Ihre persönlichen Daten sammeln und verarbeiten.

Link zum Artikel kopieren

Steigern Sie die Leistung Ihrer Website mit Cloudflare Pro und unseren Speed-Tool-Add-ons

Was ist Lastverteilung?

Load Balancing Image

Unter Load Balancing versteht man die Verteilung von Rechenlasten auf zwei oder mehr Computer. Im Internet wird Load Balancing häufig eingesetzt, um den Netzwerk-Traffic auf mehrere Server aufzuteilen. Dies reduziert die Belastung jedes einzelnen Servers und macht die Server effizienter, was die Performance erhöht und die Latenz verringert. Ohne Load Balancing können die meisten Internetanwendungen nicht funktionieren.

Ohne Load Balancing wird der Server überlastet, der Service wird langsam Mit Load Balancing – gleichmäßige Verteilung der Arbeitslast

Stellen Sie sich eine Schlange in einem Supermarkt vor. Von den acht Kassen ist nur eine geöffnet. Alle Kunden müssen sich in dieselbe Schlange einreihen und deshalb dauert es lange, bis ein Kunde seine Einkäufe bezahlt hat. Stellen Sie sich nun vor, dass das Geschäft stattdessen alle acht Kassenschlangen öffnet. In diesem Fall ist die Wartezeit für die Kunden etwa achtmal kürzer (abhängig von Faktoren wie der Menge der Lebensmittel, die jeder Kunde kauft).

Load Balancing erreicht im Wesentlichen das Gleiche. Durch die Aufteilung der Nutzeranfragen auf mehrere Server wird die Wartezeit für die Nutzer erheblich verkürzt. Dies führt zu einer besseren Nutzererfahrung – die Kunden des Lebensmittelladens im obigen Beispiel würden sich wahrscheinlich einen effizienteren Lebensmittelladen suchen, wenn sie immer lange Wartezeiten hätten.

Wie funktioniert das Load Balancing?

Load Balancing wird von einem Tool oder einer Anwendung namens Load Balancer durchgeführt. Ein Load Balancer kann entweder hardware- oder softwarebasiert sein. Hardware-Load Balancer erfordern die Installation eines speziellen Load Balancing-Geräts; softwarebasierte Load Balancer können auf einem Server, auf einer virtuellen Maschine oder in der Cloud laufen. Content Delivery Networks (CDN) enthalten oft Load Balancing-Features.

Wenn eine Anfrage eines Nutzers eingeht, weist der Load Balancer die Anfrage einem bestimmten Server zu, und dieser Vorgang wiederholt sich bei jeder Anfrage. Load Balancer bestimmen auf der Grundlage einer Reihe verschiedener Algorithmen, welcher Server die einzelnen Anfragen bearbeiten soll. Diese Algorithmen lassen sich in zwei Hauptkategorien einteilen: statisch und dynamisch.

Statische Load Balancing-Algorithmen

Statische Load Balancing-Algorithmen verteilen die Arbeitslasten, ohne den aktuellen Zustand des Systems zu berücksichtigen. Ein statischer Load Balancer weiß nicht, welche Server eine langsame Performance aufweisen und welche Server nicht ausreichend genutzt werden. Stattdessen weist er die Arbeitslasten auf der Grundlage eines vorgegebenen Plans zu. Statisches Load Balancing lässt sich schnell einrichten, kann aber zu Ineffizienzen führen.

Um auf die obige Analogie zurückzukommen: Stellen Sie sich vor, in einem Lebensmittelgeschäft mit acht offenen Kassen gibt es einen Mitarbeiter, der die Kunden in die Schlangen einordnen soll. Stellen Sie sich vor, dieser Mitarbeiter geht einfach der Reihe nach vor und weist den ersten Kunden der Reihe 1 zu, den zweiten Kunden der Reihe 2 und so weiter, ohne sich umzuschauen, wie schnell sich die Reihen bewegen. Wenn alle acht Kassierer effizient arbeiten, funktioniert dieses System einwandfrei. Wenn jedoch einer oder mehrere hinterherhinken, können einige Schlangen viel länger werden als andere, was zu einem schlechten Kundenerlebnis führt. Statisches Load Balancing birgt das gleiche Risiko: Manchmal können einzelne Server trotzdem überlastet werden.

Round-Robin-DNS und clientseitiges Random Load Balancing sind zwei gängige Formen des statischen Load Balancing.

Dynamische Load Balancing-Algorithmen

Dynamische Load Balancing-Algorithmen berücksichtigen die aktuelle Verfügbarkeit, die Arbeitslast und den Zustand der einzelnen Server. Sie können den Traffic von überlasteten oder schlecht performenden Servern auf weniger ausgelastete Server verlagern, sodass die Verteilung gleichmäßig und effizient bleibt. Dynamisches Load Balancing ist jedoch schwieriger zu konfigurieren. Die Verfügbarkeit der Server hängt von einer Reihe verschiedener Faktoren ab: dem Zustand und der Gesamtkapazität der einzelnen Server, dem Umfang der zu verteilenden Aufgaben usw.

Nehmen wir an, der Supermarktangestellte, der die Kunden in die Kassenschlangen einsortiert, verwendet einen dynamischeren Ansatz: Der Angestellte beobachtet die Schlangen genau, sieht, welche sich am schnellsten bewegen, beobachtet, wie viele Lebensmittel jeder Kunde kauft, und teilt die Kunden entsprechend ein. Dies mag für alle Kunden effizienter sein, stellt aber auch eine größere Belastung für den Mitarbeiter dar, der die Schlangen sortiert.

Es gibt verschiedene Arten von Algorithmen zum dynamischen Load Balancing, z. B. Least Connection, Weighted Least Connection, ressourcenbasiertes und geolokalisiertes Load Balancing.

Wo wird Load Balancing eingesetzt?

Wie bereits erwähnt, wird Load Balancing häufig bei Webanwendungen eingesetzt. Softwarebasierte und cloudbasierte Load Balancer helfen dabei, den Internet-Traffic gleichmäßig zwischen den Servern zu verteilen, die die Anwendung hosten. Einige Cloud Load Balancing-Produkte können die Lasten des Internet-Traffic auf weltweit verteilte Server verteilen, ein Prozess, der als globaler Serverlastenausgleich (GSLB) bekannt ist.

Load Balancing wird auch häufig in großen lokalisierten Netzwerken eingesetzt, z. B. in einem Rechenzentrum oder einem großen Bürokomplex. Traditionell werden hierfür Hardware-Appliances wie ein Application Delivery Controller (ADC) oder ein spezielles Load Balancing-Gerät eingesetzt. Auch softwarebasierte Load Balancer kommen zu diesem Zweck zum Einsatz.

Was ist Serverüberwachung?

Dynamische Load Balancer müssen über den Zustand der Server informiert sein: ihren aktuellen Status, ihre Performance usw. Dynamische Load Balancer kontrollieren regelmäßig eine Integritätsprüfungen der Server durchführen. Wenn die Performance eines Servers oder einer Gruppe von Servern nachlässt, leitet der Load Balancer weniger Traffic an diesen Server weiter. Fällt ein Server oder eine Gruppe von Servern komplett aus, leitet der Load Balancer den Traffic auf eine andere Gruppe von Servern um, ein Prozess, der als“Failover“bezeichnet wird.

Was ist Failover?

Failover tritt ein, wenn ein bestimmter Server nicht funktioniert und ein Load Balancer seine normalen Prozesse auf einen Sekundärserver oder eine Gruppe von Servern umleitet. Failover ist für die Zuverlässigkeit eines Servers von entscheidender Bedeutung: Wenn kein Backup vorhanden ist, kann ein Serverausfall eine Website oder Anwendung zum Absturz bringen. Es ist wichtig, dass das Failover schnell erfolgt, um eine Lücke im Service zu vermeiden.

Erfahren Sie mehr über die verschiedenen Aspekte des Load Balancing: