Ein Load Balancer (Lastverteiler) ist eine Netzwerkkomponente, die eingehenden Traffic auf mehrere Backend-Server verteilt. Er sitzt zwischen dem Client und den Servern, empfaengt alle Anfragen und leitet sie nach einem definierten Algorithmus an den am besten geeigneten Server weiter.
Load Balancing ist eine der grundlegendsten Techniken fuer skalierbare und hochverfuegbare Webanwendungen. Ohne Load Balancer ist eine einzelne Serverinstanz ein Single Point of Failure -- faellt sie aus, ist die gesamte Anwendung offline. Mit Load Balancing werden Ausfaelle einzelner Server transparent kompensiert.
Wie ein Load Balancer funktioniert
Der Grundmechanismus
- Client sendet eine Anfrage (z. B. Webseitenaufruf)
- Die Anfrage erreicht den Load Balancer
- Der Load Balancer waehlt einen Backend-Server basierend auf dem konfigurierten Algorithmus
- Der Backend-Server verarbeitet die Anfrage und sendet die Antwort
- Der Load Balancer leitet die Antwort an den Client weiter
Health Checks
Der Load Balancer ueberprueft regelmaessig, ob die Backend-Server funktionsfaehig sind:
- HTTP Health Check: Prueft, ob der Server auf eine definierte URL mit 200 OK antwortet
- TCP Health Check: Prueft, ob der Server auf einem Port erreichbar ist
- Custom Check: Prueft anwendungsspezifische Metriken
Faellt ein Server den Health Check durch, leitet der Load Balancer keinen Traffic mehr an ihn, bis er wieder gesund ist.
Load-Balancing-Algorithmen
| Algorithmus | Funktionsweise | Ideal fuer |
|---|---|---|
| Round Robin | Reihum, jeder Server bekommt die naechste Anfrage | Gleichartige Server, zustandslose Anfragen |
| Weighted Round Robin | Wie Round Robin, aber staerkere Server bekommen mehr | Server mit unterschiedlicher Leistung |
| Least Connections | Server mit wenigsten aktiven Verbindungen erhaelt die naechste | Unterschiedlich lange Anfragen |
| IP Hash | Gleiche Client-IP immer zum gleichen Server | Session-Affinitaet ohne Sticky Sessions |
| Random | Zufaellige Auswahl | Einfache Szenarien |
| Least Response Time | Server mit schnellster Antwortzeit erhaelt die naechste | Performance-kritische Anwendungen |
Typen von Load Balancern
Layer 4 (Transport Layer)
Entscheidet basierend auf IP-Adresse und Port, ohne den Inhalt der Anfrage zu inspizieren. Schnell und effizient, aber ohne Kenntnis des Anwendungsprotokolls.
Layer 7 (Application Layer)
Inspiziert den HTTP-Inhalt der Anfrage (URL, Headers, Cookies) und kann intelligentere Routing-Entscheidungen treffen:
- Anfragen an
/api/*gehen an API-Server - Anfragen an
/images/*gehen an den Bild-CDN - Anfragen mit bestimmten Cookies gehen an spezifische Server
Load-Balancing-Loesungen
Cloud-Loesungen
- AWS Elastic Load Balancer (ELB): Application Load Balancer (L7) und Network Load Balancer (L4)
- Google Cloud Load Balancing: Globales Load Balancing mit Anycast-IPs
- Azure Load Balancer: Integriert in Azure-Infrastruktur
- Cloudflare: Load Balancing als Teil des CDN-Angebots
Self-hosted Loesungen
- Nginx: Weit verbreiteter Webserver und Reverse Proxy mit Load-Balancing-Funktion
- HAProxy: Spezialisierter, hochperformanter Open-Source Load Balancer
- Traefik: Cloud-nativer Reverse Proxy mit automatischer Service-Discovery
- Envoy: Service Mesh Proxy mit fortgeschrittenem Load Balancing
Load Balancing und Website-Performance
Fuer Websites hat Load Balancing direkten Einfluss auf die Core Web Vitals:
- Time to First Byte (TTFB): Ein ueberlasteter Server antwortet langsam. Load Balancing verteilt die Last und haelt die TTFB niedrig.
- Verfuegbarkeit: Faellt ein Server aus, uebernehmen die anderen -- ohne Downtime.
- Geografische Verteilung: Globale Load Balancer leiten Nutzer zum naechstgelegenen Server, was die Latenz reduziert.
Session Persistence (Sticky Sessions)
Bei zustandsbehafteten Anwendungen (z. B. mit serverseitigen Sessions) muss ein Nutzer immer zum selben Server geleitet werden. Sticky Sessions binden einen Client basierend auf einem Cookie oder der IP-Adresse an einen bestimmten Server. Die bessere Loesung: Sessions externalisieren (z. B. in Redis), sodass jeder Server jede Anfrage bedienen kann.
Auto-Scaling und Load Balancing
In Cloud-Umgebungen arbeiten Load Balancer oft Hand in Hand mit Auto-Scaling: Bei steigender Last werden automatisch neue Server-Instanzen gestartet und beim Load Balancer registriert. Bei sinkender Last werden ueberfluessige Instanzen heruntergefahren. Dieses Zusammenspiel ist die Grundlage moderner Hosting-Architekturen und Serverless-Plattformen.
Load Balancing ist keine optionale Optimierung, sondern eine Grundvoraussetzung fuer jede professionelle Webanwendung, die Ausfallsicherheit und Performance unter Last garantieren muss.