Kurzfassung
Load Balancing ist das Verteilen von Client-Anfragen oder Netzwerkverkehr auf einen Pool von Servern, damit kein einzelner Server zum Engpass wird. Es erhöht Ausfallsicherheit und Durchsatz.
Was ist Load Balancing?
Ein Load Balancer steht zwischen Clients und Backend-Servern, nimmt eingehende Anfragen entgegen und leitet sie nach einem Verteilungsalgorithmus weiter. Gängige Verfahren sind Round-Robin, Least Connections, IP-Hash und gewichtetes Round-Robin. Layer-4-Load-Balancer arbeiten auf der Transportschicht und routen anhand von IP-Adressen sowie TCP/UDP-Ports; Layer-7-Load-Balancer inspizieren HTTP-Inhalte und können nach URL-Pfaden, Hostnames oder Request-Headern verteilen.
Load Balancer prüfen außerdem die Gesundheit der Backend-Instanzen. Antwortet ein Server nicht, wird er automatisch aus dem Pool entfernt und der Verkehr auf gesunde Knoten umgeleitet. Erholt sich der Server, wird er wieder aufgenommen. Damit ist Load Balancing eine Kernkomponente hochverfügbarer Architekturen.
In Cloud-Umgebungen werden Load Balancer als Managed Services angeboten. OpenStack stellt Octavia bereit, AWS bietet ALB und NLB, und Kubernetes nutzt Ingress-Controller oder Service-Objekte vom Typ LoadBalancer. Diese Dienste integrieren sich mit Autoscaling-Gruppen, um schwankende Last automatisch zu bedienen.
Warum ist Load Balancing relevant?
- Hohe Verfügbarkeit: Beseitigt Single Points of Failure, indem Verkehr über mehrere gesunde Instanzen verteilt wird
- Skalierbarkeit: Ermöglicht horizontale Skalierung; zusätzliche Server erhöhen die Kapazität transparent für Clients
- Performance: Reduziert Antwortzeiten, weil kein einzelner Server überlastet wird