Lastverteilung
Die Lastverteilung ist eine Technik zur Verteilung des Datenverkehrs auf mehrere Server.
Klassifikation
- KomplexitätMittel
- AuswirkungTechnisch
- EntscheidungstypDesign
- OrganisationsreifeFortgeschritten
Technischer Kontext
Prinzipien & Ziele
Use Cases & Szenarien
Kompromisse
- Serverausfallen could impact availability.
- Schwierigkeiten bei der Diagnose von Problemen.
- Kosten durch zusätzliche Hardware.
- Regelmäßige Überprüfung der Serverauslastung.
- Überwachung der Traffic-Muster.
- Dokumentation der Netzwerktopologie.
I/O & Ressourcen
- Verfügbare Server-Ressourcen.
- Datenverkehrsmuster.
- Monitoring-Tools.
- Optimale Verteilung des Datenverkehrs.
- Erhöhte Serververfügbarkeit.
- Reduzierte Antwortzeiten.
Beschreibung
Die Lastverteilung ermöglicht es, Anfragen gleichmäßig auf mehrere Server zu verteilen, um die Verfügbarkeit und Skalierbarkeit von Anwendungen zu verbessern. Durch die Vermeidung von Überlastungen einzelner Server wird die Leistung optimiert.
✔Vorteile
- Erhöhte Verfügbarkeit.
- Bessere Leistung.
- Optimale Ressourcennutzung.
✖Limitationen
- Zusätzlicher Komplexitätsaufwand.
- Mögliche Latenzzeiten durch Routing.
- Abhängigkeit von externen Diensten.
Trade-offs
Metriken
- Serverauslastung
Messung der Auslastung eines Servers.
- Antwortzeit
Zeit, die benötigt wird, um auf Anfragen zu antworten.
- Anzahl der aktiven Verbindungen
Zahl der Benutzer, die gleichzeitig verbunden sind.
Beispiele & Implementierungen
E-Commerce-Website
Eine E-Commerce-Webseite nutzt Lastverteilung zur Handhabung hoher Benutzerzahlen während Verkaufsaktionen.
Cloud-Dienste
Ein Cloud-Service-Anbieter verwendet Lastverteilung, um Ressourcen effizient zu nutzen.
Streaming-Plattform
Eine Streaming-Plattform implementiert Lastverteilung, um Lags und Pufferungen zu reduzieren.
Implementierungsschritte
Evaluierung der vorhandenen Serverinfrastruktur.
Auswahl einer passenden Lastverteilungslösung.
Implementierung und Test der Lastverteilung.
⚠️ Technische Schulden & Engpässe
Tech Debt
- Überalterte Infrastruktur.
- Fehlende Dokumentation.
- Backend-Engpässe.
Bekannte Engpässe
Beispiele für Missbrauch
- Überlastung eines einzelnen Servers.
- Ignorieren von Monitoring-Daten.
- Übermäßige Komplexität der Architektur.
Typische Fallen
- Zu frühe Skalierung ohne Bedarf.
- Missverständnisse über Lastverteilungstechniken.
- Unrealistische Erwartungen an die Leistung.
Erforderliche Fähigkeiten
Drivers (Architectural Drivers)
Constraints
- • Zusätzliche Hardwareanforderungen.
- • Netzwerkinfrastruktur für Lastverteilung.
- • Sicherheitsanforderungen für Daten.