Session-Affinität

Was ist Sitzungsaffinität in einem Load Balancer?

Load Balancer verteilen Client-Zugriffsanfragen zwischen Backend-Server-Pools mit Hilfe verschiedener Algorithmen, kombiniert mit Echtzeitwissen über die Auslastung und den Zustand der Server im Pool. Dadurch können die eingehenden Verbindungsanfragen auf die Server im Pool verteilt werden, indem sie dem Server zugewiesen werden, der zum Zeitpunkt des Eintreffens der Anfrage am besten geeignet ist, sie zu bearbeiten. Für viele Anwendungen ist dies der beste Weg, um eingehende Anfragen zu bearbeiten. Einige Webanwendungen sind jedoch dynamischer Natur, und eine Benutzersitzung, die mit ihnen interagiert, erfordert mehrere Anfragen, die zwischen den Clients, den Load-Balancern und den Servern im Pool hin- und herfließen. Bei solchen Verbindungen ist es wichtig, dass alle zusammenhängenden Anfragen nach der anfänglichen Verbindungszuweisung an denselben Server im Pool weitergeleitet werden und nicht auf mehrere Server verteilt sind. Dies gilt vor allem für Webanwendungen mit dynamischen Elementen wie Formularen oder Warenkörben, deren Interaktion oder Fertigstellung erhebliche Zeit in Anspruch nehmen kann. Die Sitzungsaffinität ist eine Funktion von Load-Balancern, die es ermöglicht, dass der gesamte nachfolgende Datenverkehr und alle Anfragen aus einer anfänglichen Client-Sitzung an denselben Server im Pool weitergeleitet werden. Sitzungsaffinität wird auch als Sitzungsaufrechterhaltung, Serveraffinität, Serveraufrechterhaltung oder Server-Sticky bezeichnet. Wenn die Sitzungsaffinität auf LoadMaster aktiviert ist, werden alle neuen Verbindungsanfragen von Clients an den Server im Pool weitergeleitet, der sie am besten bearbeiten kann. Wiederkehrende Verbindungsanfragen gehen jedoch an den Server, den sie zuvor benutzt haben. Die Sitzungsaffinität ist bei LoadMaster nicht standardmäßig aktiviert. Wenn sie benötigt wird, kann sie für jeden Virtual Service separat konfiguriert werden, was eine feinkörnige Konfiguration ermöglicht.

Methoden, die die Sitzungsaffinität aktivieren

Die Sitzungsaffinität wird für virtuelle Dienste konfiguriert, die auf Anwendungsebene 7 ausgeführt werden. Sie alle gehen über die grundlegenden IP-Adressen und Portnummern hinaus und bieten eine Reihe von Optionen, die je nach erforderlichem Grad an Persistenz verwendet werden können.
  • Persistenz von Server-Cookies
  • Aktive Cookie-Persistenz
  • Server-Cookie oder Quell-IP-Persistenz
  • Aktive Cookie- oder Quell-IP-Persistenz
  • Hash Alle Cookies Persistenz
  • Hashen Sie alle Cookies oder Quell-IP-Persistenz
  • Persistenz der Quell-IP-Adresse
  • Super HTTP
  • URL-Hash
  • HTTP-Host-Header
  • Ausgewählter Header
  • SSL-Sitzungs-ID
  • UDP-Sitzungsinitiierungsprotokoll (SIP)
Weitere Informationen zu diesen Methoden finden Sie in diesem Support-Artikel. Wenn Sie HTTPS- und TLS-gesicherte Sitzungen verwenden, gibt es einige Methoden aus der obigen Liste, die nicht funktionieren, wenn die TLS-Sitzung nicht am Load Balancer beendet wird. In diesem Fall können nur die Quell-IP-Adresspersistenz oder die SSL-Sitzungs-ID-Persistenz verwendet werden. Wenn das TLS am Load Balancer beendet wird, wie beim LoadMaster SSL/TLS-Offloading, kann eine der oben (und im verlinkten Support-Artikel) beschriebenen Methoden verwendet werden.

Verwenden des Timeouts zum Bestimmen der Sitzungsaffinitätsdauer

Für jede der Sitzungsaffinitätsmethoden gibt es einen konfigurierbaren Timeout-Wert, mit dem die Zeitspanne festgelegt werden kann, in der die Persistenz einer Benutzersitzung gewahrt bleibt. Diese Zeitüberschreitung kann von einer Minute bis zu sieben Tagen eingestellt werden. Die Timeout-Uhr wird beim Aufbau der ursprünglichen Verbindung gestartet. Sie wird neu gestartet, wenn die Verbindung unterbrochen und innerhalb der Zeitspanne wiederhergestellt wird. Wenn die Zeitüberschreitung beispielsweise auf 30 Minuten eingestellt ist und eine Sitzung um 15:00 Uhr beginnt und 12 Minuten dauert, dann verbindet sich derselbe Benutzer um 15:26 Uhr erneut mit demselben realen Server im Pool und die Zeitüberschreitung wird auf 30 Minuten zurückgesetzt. Die Zeitüberschreitung der Sitzungsaffinität würde in diesem Fall also 15:56 betragen. Wird die Verbindung vor dieser Zeit unterbrochen und wiederhergestellt, wird die Timeout-Uhr wieder auf 30 Minuten zurückgesetzt.

Wie können wir Ihnen helfen?

Haben Sie Fragen zur Anwendungsbereitstellung? Unsere Ingenieure unterstützen Sie jederzeit gerne.

Termin vereinbaren