Load-Balancing
Kurz: Das Verteilen eingehender Anfragen auf mehrere Server, damit kein einzelner Server überlastet wird und die Gesamtlast gleichmäßig getragen wird.
Genauer: Ein Load Balancer sitzt logisch vor einer Gruppe von Servern und entscheidet nach einer Strategie (z. B. Round Robin, geringste aktuelle Last, oder Anycast-Routing), welcher Server eine konkrete Anfrage bearbeitet. Erhöht sowohl Performance (Parallelisierung) als auch Ausfallsicherheit (fällt ein Server aus, übernehmen die anderen).
Im Detail
Load Balancer arbeiten auf unterschiedlichen OSI-Schichten mit jeweils eigenen Vor- und Nachteilen: Ein Layer-4-Load-Balancer entscheidet rein anhand von IP-Adresse und Port (schnell, aber “blind” gegenüber dem Inhalt der Verbindung), ein Layer-7-Load-Balancer schaut sich sogar den HTTP-Inhalt an und kann z. B. Anfragen für /api/* gezielt an andere Server schicken als Anfragen für /static/* — flexibler, aber rechenintensiver.
Typische Verteilungsstrategien:
Round Robin - reihum, ein Server nach dem anderen
Least Connections - an den Server mit aktuell den wenigsten offenen Verbindungen
IP Hash - derselbe Client landet immer beim selben Server (Session-Persistenz)
Die Wahl der Strategie hat praktische Konsequenzen: Round Robin ist einfach, ignoriert aber, dass manche Anfragen viel aufwendiger sind als andere — ein Server kann trotz gleicher Anfragezahl überlastet sein. IP Hash löst ein anderes Problem: Wenn eine Anwendung Sitzungsdaten lokal auf einem Server hält (statt in einer geteilten Datenbank oder einem Cache wie Redis), muss ein Client bei jeder Anfrage beim selben Server landen (“Sticky Sessions”), sonst geht sein Login-Status verloren.
Neben Performance-Gewinn durch Parallelisierung ist Ausfallsicherheit der zweite große Vorteil: Ein Load Balancer prüft laufend per Health-Checks, ob ein Backend-Server noch antwortet, und nimmt ausgefallene Server automatisch aus der Rotation — Nutzer merken von einem Serverausfall im Idealfall gar nichts, weil ihre Anfragen einfach an einen der verbleibenden Server geleitet werden.