Was ist Lastverteilung?
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.
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:
- Algorithmen für Lastverteilung
- Globaler Serverlastenausgleich (GSLB)
- DNS-Lastverteilung
- Server-Failover
- Load Balancing über mehrere Clouds hinweg
- Cloudflare-Lastverteilung
- Einrichten eines Cloudflare Load Balancers
FAQs
Was ist Lastverteilung?
Lastverteilung (Load Balancing) ist die Praxis, Netzwerkverkehr oder Rechenarbeitslasten auf mehrere Server zu verteilen, um die Performance und Zuverlässigkeit einer Anwendung zu verbessern.
Was versteht man unter Lastverteilung?
Ein Load Balancer ist ein Tool oder eine Anwendung – entweder hardwarebasiert oder softwarebasiert – die Arbeitslasten und Traffic auf mehrere Server verteilt.
Was ist der Unterschied zwischen statischen und dynamischen Load Balancing-Algorithmen?
Statische Lastverteilungsalgorithmen weisen den Datenverkehr basierend auf einem vorgegebenen Plan zu, ohne den Serverstatus zu berücksichtigen, während dynamische Algorithmen die Verteilung des Datenverkehrs in Echtzeit basierend auf Serverzustand und Performance anpassen.
Was ist Serverüberwachung bei der Lastverteilung?
Die Serverüberwachung umfasst die regelmäßige Überprüfung des Zustands und der Performance der Server, damit der Lastverteiler den Datenverkehr effizient verteilen und eine Überlastung von nicht funktionstüchtigen Servern vermeiden kann.
Was ist Failover bei der Lastverteilung?
Failover ist die automatische Umleitung des Traffics zu Backup-Servern, wenn ein Primärserver ausfällt, um eine nahezu kontinuierliche Verfügbarkeit des Dienstes sicherzustellen.
Wie verbessert Lastverteilung die Performance?
Lastverteilung reduziert die Belastung jedes Servers, macht die Server effizienter und hilft sicherzustellen, dass nicht alle Nutzer auf Antworten von demselben Server (oder Serverpool) warten müssen. Dies beschleunigt die Antwortzeiten und verringert die Latenzzeit, was zu einem schnelleren und effizienteren Service für die Nutzer führt.
Welche gängigen Methoden der Lastverteilung gibt es?
Zu den gängigen Methoden gehören Round-Robin-DNS, gewichtetes Round-Robin-DNS, Least-Connection, gewichtete Least-Connection und ressourcenbasierte Lastverteilung.
Wo wird Lastverteilung häufig eingesetzt?
Lastverteilung wird häufig in Webanwendungen, Rechenzentren und großen Netzwerken eingesetzt, um Rechenlasten effektiv zu verwalten und zu verteilen.
Was ist globale Serverlastverteilung (Global Server Load Balancing, GSLB)?
Bei globaler Serverlastverteilung (GSLB) wird der Internet-Traffic auf Server weltweit verteilt, um die Performance für Nutzer unabhängig von ihrem Standort zu optimieren.
Wie wirkt sich Lastverteilung auf die Benutzererfahrung aus?
Lastverteilung minimiert Wartezeiten und sorgt für einen reibungsloseren, reaktionsschnelleren Service, was zu einer besseren Erfahrung für Endnutzer führt.