GNU/Linux >> LINUX-Kenntnisse >  >> Ubuntu

Was ist Load-Balancing? Definition und wie es funktioniert

Einführung

Moderne Websites und Anwendungen generieren viel Verkehr und bedienen zahlreiche Kundenanfragen gleichzeitig. Load-Balancing hilft bei der Erfüllung dieser Anforderungen und sorgt dafür, dass die Website und die Anwendung schnell und zuverlässig reagieren.

In diesem Artikel erfahren Sie, was Load-Balancing ist, wie es funktioniert und welche verschiedenen Arten von Load-Balancing es gibt.

Load-Balancing-Definition

Load-Balancing verteilt hohen Netzwerkverkehr über mehrere Server hinweg, sodass Unternehmen horizontal skalieren können, um Workloads mit hohem Datenverkehr zu bewältigen. Load Balancing leitet Client-Anfragen an verfügbare Server weiter, um die Arbeitslast gleichmäßig zu verteilen und die Reaktionsfähigkeit der Anwendung zu verbessern, wodurch die Website-Verfügbarkeit erhöht wird.

Load-Balancing gilt für die Schichten 4–7 in der siebenschichtigen Open System Interconnection (OSI ) Modell. Seine Fähigkeiten sind:

  • L4. Leiten des Datenverkehrs basierend auf Netzwerkdaten und Transportschichtprotokollen, z. B. IP-Adresse und TCP-Port.
  • L7 . Fügt Content-Switching zum Load-Balancing hinzu und ermöglicht Routing-Entscheidungen in Abhängigkeit von Merkmalen wie HTTP-Header, Uniform Resource Identifier, SSL-Sitzungs-ID und HTML-Formulardaten.
  • GSLB. Global Server Load Balancing erweitert die L4- und L7-Funktionen auf Server an verschiedenen Standorten.

Warum ist Load-Balancing wichtig?

Load-Balancing ist unerlässlich, um den Informationsfluss aufrechtzuerhalten zwischen dem Server und den Benutzergeräten, die für den Zugriff auf die Website verwendet werden (z. B. Computer, Tablets, Smartphones).

Es gibt mehrere Load-Balancing-Vorteile:

  • Zuverlässigkeit. Eine Website oder App muss auch bei hohem Traffic eine gute UX bieten. Load Balancer bewältigen Verkehrsspitzen, indem sie Daten effizient verschieben, die Ressourcennutzung für die Anwendungsbereitstellung optimieren und Serverüberlastungen verhindern. Auf diese Weise bleibt die Leistung der Website hoch und die Benutzer bleiben zufrieden.
  • Verfügbarkeit. Load-Balancing ist wichtig, da es regelmäßige Zustandsprüfungen beinhaltet zwischen dem Load Balancer und den Host-Maschinen, um sicherzustellen, dass sie Anfragen erhalten. Wenn einer der Hostcomputer ausfällt, leitet der Load Balancer die Anfrage an andere verfügbare Geräte weiter.

    Load Balancer entfernen auch fehlerhafte Server aus dem Pool, bis das Problem behoben ist. Einige Load-Balancer erstellen sogar neue virtualisierte Anwendungsserver, um eine erhöhte Anzahl von Anfragen zu erfüllen.
  • Sicherheit. Der Lastausgleich wird in den meisten modernen Anwendungen zu einer Anforderung, insbesondere mit den zusätzlichen Sicherheitsfunktionen im Zuge der Weiterentwicklung von Cloud Computing. Die Off-Loading-Funktion des Load Balancers schützt vor DDoS-Angriffen indem der Angriffsverkehr auf einen öffentlichen Cloud-Anbieter statt auf den Unternehmensserver verlagert wird.
  • Vorausschauende Erkenntnisse. Load-Balancing umfasst Analysen, die Traffic-Engpässe vorhersagen können und Organisationen erlauben, sie zu verhindern. Die prädiktiven Erkenntnisse fördern die Automatisierung und helfen Unternehmen, Entscheidungen für die Zukunft zu treffen.

Wie funktioniert Load-Balancing?

Load Balancer sitzen zwischen den Anwendungsservern und den Benutzern im Internet. Sobald der Load Balancer eine Anfrage erhält, bestimmt er, welcher Server in einem Pool verfügbar ist, und leitet die Anfrage dann an diesen Server weiter.

Durch Weiterleiten der Anfragen an verfügbare Server oder Server mit geringerer Auslastung, Load Balancing entlastet gestresste Server und sorgt für hohe Verfügbarkeit und Zuverlässigkeit.

Load-Balancer fügen Server dynamisch hinzu oder entfernen sie bei hoher oder geringer Nachfrage. Auf diese Weise bietet es Flexibilität bei der Anpassung an die Nachfrage.

Load-Balancing bietet auch Failover zusätzlich zur Leistungssteigerung. Der Load Balancer leitet die Arbeitslast von einem ausgefallenen Server auf einen Backup-Server um und mindert so die Auswirkungen auf die Endbenutzer.

Arten des Lastenausgleichs

Load Balancer unterscheiden sich in Speichertyp, Balancer-Komplexität und Funktionalität. Die verschiedenen Arten von Load Balancern werden unten erklärt.

Hardwarebasiert

Ein hardwarebasierter Load Balancer ist dedizierte Hardware mit proprietärer Software Eingerichtet. Es kann große Mengen an Datenverkehr von verschiedenen Anwendungstypen verarbeiten.

Hardwarebasierte Load-Balancer enthalten integrierte Virtualisierungsfunktionen, die mehrere virtuelle Load-Balancer-Instanzen auf demselben Gerät ermöglichen.

Softwarebasiert

Ein softwarebasierter Load Balancer wird auf virtuellen Maschinen oder Whitebox-Servern ausgeführt, die normalerweise in ADC integriert sind (Application Delivery Controller). Virtuelles Load-Balancing bietet im Vergleich zum physischen eine überlegene Flexibilität.

Softwarebasierte Load Balancer laufen auf gängigen Hypervisoren, Containern oder als Linux-Prozesse mit vernachlässigbarem Overhead auf einem Bare-Metal-Server.

Virtuell

Ein virtueller Load-Balancer stellt die proprietäre Load-Balancing-Software von einem dedizierten Gerät auf einer virtuellen Maschine bereit, um die beiden oben genannten Typen zu kombinieren. Virtuelle Load Balancer können jedoch die architektonischen Herausforderungen der begrenzten Skalierbarkeit und Automatisierung nicht bewältigen.

Cloud-basiert

Cloud-basierter Lastenausgleich nutzt Cloud-Infrastruktur. Einige Beispiele für Cloud-basiertes Load-Balancing sind:

  • Netzwerklastenausgleich . Der Netzwerklastausgleich basiert auf Schicht 4 und nutzt die Informationen der Netzwerkschicht, um zu bestimmen, wohin der Netzwerkdatenverkehr gesendet werden soll. Netzwerk-Load-Balancing ist die schnellste Load-Balancing-Lösung, aber es fehlt ihr, die Verteilung des Datenverkehrs auf Server auszugleichen.
  • HTTP(S)-Load-Balancing . Der HTTP(S)-Load-Balancing basiert auf Layer 7. Es ist einer der flexibelsten Load-Balancing-Typen, der es Administratoren ermöglicht, Entscheidungen zur Traffic-Verteilung basierend auf allen Informationen zu treffen, die mit einer HTTP-Adresse geliefert werden.
  • Interner Lastenausgleich . Der interne Lastenausgleich ist fast identisch mit dem Netzwerklastenausgleich, außer dass er die Verteilung in der internen Infrastruktur ausgleichen kann.

Load-Balancing-Algorithmen

Unterschiedliche Load-Balancing-Algorithmen bieten je nach Anwendungsfall unterschiedliche Vorteile und Komplexität. Die gängigsten Load-Balancing-Algorithmen sind:

Round Robin

Verteilt Anfragen sequenziell zum ersten verfügbaren Server und verschiebt diesen Server nach Abschluss an das Ende der Warteschlange. Der Round-Robin-Algorithmus wird für Pools gleicher Server verwendet, berücksichtigt jedoch nicht die bereits auf dem Server vorhandene Last.

Geringste Verbindungen

Der Least Connections-Algorithmus beinhaltet das Senden einer neuen Anfrage an den am wenigsten ausgelasteten Server . Die Methode der geringsten Verbindung wird verwendet, wenn im Serverpool viele ungleichmäßig verteilte dauerhafte Verbindungen vorhanden sind.

Geringste Reaktionszeit

Lastenausgleich mit der geringsten Reaktionszeit verteilt Anfragen an den Server mit den wenigsten aktiven Verbindungen und der schnellsten durchschnittlichen Antwort Zeit auf eine Gesundheitsüberwachungsanforderung. Die Antwortgeschwindigkeit gibt an, wie ausgelastet der Server ist.

Hash

Der Hash-Algorithmus bestimmt, wohin Anfragen basierend auf einem festgelegten Schlüssel verteilt werden , wie z. B. die Client-IP-Adresse, die Portnummer oder die Anforderungs-URL. Die Hash-Methode wird für Anwendungen verwendet, die auf benutzerspezifisch gespeicherte Informationen angewiesen sind, z. B. Warenkörbe auf E-Commerce-Websites.

Benutzerdefiniertes Laden

Der benutzerdefinierte Ladealgorithmus leitet die Anfragen über SNMP an einzelne Server weiter (Simple Network Management Protocol). Der Administrator definiert die Serverlast, die der Load Balancer beim Weiterleiten der Abfrage berücksichtigen soll (z. B. CPU- und Speicherauslastung und Antwortzeit).


Ubuntu
  1. Was ist Hadoop Mapreduce und wie funktioniert es?

  2. Was ist Git Upstream und wie richtet man Upstream Branch ein?

  3. VPN-Härtung:Was es ist und wie es gemacht wird

  4. Was ist Build-Essential-Ubuntu, wie wird es installiert und verwendet?

  5. Was ist E-Mail und wie wird darin navigiert?

Was ist PPA in Ubuntu und wie wird es hinzugefügt/entfernt?

Was ist EasyApache und wie verwende ich es?

Was ist PPA in Ubuntu Linux und wie verwende ich sie?

Wie funktioniert ein Load Balancer? Was ist Load-Balancing?

Was ist DHCP und wie funktioniert DHCP? (DHCP-Grundlagen erklärt)

Was ist DNS und wie funktioniert DNS? (Grundlagen des Domain Name Server)