Was ist ein Load Balancing-Algorithmus?
Ein Load Balancer ist ein Software- oder Hardwaregerät, das verhindert, dass ein einzelner Server überlastet wird. Ein Load Balancing-Algorithmus ist die Logik, mit der ein Load Balancer den Netzwerk-Traffic zwischen den Servern verteilt (ein Algorithmus ist eine Reihe von vordefinierten Regeln).
Es gibt zwei Hauptansätze für das Load Balancing. Beim dynamischen Load Balancing werden Algorithmen verwendet, die den aktuellen Zustand der einzelnen Server berücksichtigen und den Traffic entsprechend verteilen. Beim statischen Load Balancing erfolgt die Verteilung des Traffics ohne diese Anpassungen. Einige statische Algorithmen senden eine gleiche Menge an Traffic an jeden Server in einer Gruppe, entweder in einer bestimmten Reihenfolge oder nach dem Zufallsprinzip.
Welche verschiedenen Arten von Load Balancing-Algorithmen gibt es?
Dynamische Load Balancing Algorithmen
- Geringste Verbindung: Prüft, welche Server gerade die wenigsten Verbindungen offen haben, und schickt den Traffic an diese Server. Dabei wird davon ausgegangen, dass alle Verbindungen ungefähr die gleiche Verarbeitungsleistung benötigen.
- Gewichtete geringste Verbindung: Gibt Administratoren die Möglichkeit, jedem Server unterschiedliche Gewichtungen zuzuweisen, wobei davon ausgegangen wird, dass einige Server mehr Verbindungen verarbeiten können als andere.
- Gewichtete Antwortzeit: Ermittelt die durchschnittliche Reaktionszeit jedes Servers und kombiniert diese mit der Anzahl der Verbindungen, die jeder Server geöffnet hat, um zu bestimmen, wohin der Traffic geschickt werden soll. Indem der Traffic zu den Servern mit der schnellsten Reaktionszeit geleitet wird, gewährleistet der Algorithmus für die Nutzer einen schnelleren Dienst.
- Ressourcenbasiert: Verteilt die Last auf der Grundlage der Ressourcen, die jedem Server zu diesem Zeitpunkt zur Verfügung stehen. Eine spezielle Software (ein so genannter“Agent"), die auf jedem Server läuft, misst die verfügbare CPU und den Arbeitsspeicher des Servers und der Load Balancer fragt den Agenten ab, bevor er den Traffic an diesen Server verteilt.
Statische Load Balancing-Algorithmen
- Round Robin: Der Round-Robin-Load Balancing-Algorithmus verteilt den Traffic über das Domain Name System (DNS) auf eine Liste von Servern in Rotation. Ein autoritativer Nameserver verfügt über eine Liste verschiedener A-Einträge für eine Domain und stellt bei jeder Abfrage einen anderen zur Verfügung.
- Gewichtetes Round-Robin-Verfahren: Ermöglicht es einem Administrator, jedem Server unterschiedliche Gewichtungen zuzuweisen. Server, von denen angenommen wird, dass sie mehr Traffic bewältigen können, erhalten etwas mehr. Die Gewichtung kann in den DNS-Einträgen konfiguriert werden.
- IP-Hash: Kombiniert die Quell- und Ziel-IP-Adressen des eingehenden Traffics und wandelt sie mithilfe einer mathematischen Funktion in einen Hash um. Anhand des Hashs wird die Verbindung einem bestimmten Server zugewiesen.
Wie funktioniert das Cloudflare Load Balancing?
Cloudflare Load Balancing lenkt den Traffic mithilfe von Health Checks auf gesunde Server. Außerdem können Administratoren festlegen, wo regionaler Traffic abgewickelt werden soll. Dadurch verringern sie die Distanz, die der Traffic zurücklegen muss. Diese Methode nennt sich globaler Serverlastenausgleich (GSLB).