Wenn Ihre Website nur von einem Webserver bereitgestellt wird, wird für jedes Client-Server-Paar ein Sitzungsobjekt erstellt, das im Speicher des Webservers verbleibt. Alle Anforderungen vom Client gehen an diesen Webserver und aktualisieren dieses Sitzungsobjekt. Wenn einige Daten während des Interaktionszeitraums im Sitzungsobjekt gespeichert werden müssen, werden sie in diesem Sitzungsobjekt gespeichert und bleiben dort, solange die Sitzung vorhanden ist.
Wenn Ihre Website jedoch von mehreren Webservern bereitgestellt wird, die sich hinter einem Load Balancer befinden, entscheidet der Load Balancer, an welchen tatsächlichen (physischen) Webserver jede Anforderung gesendet werden soll. Wenn sich beispielsweise 3 Webserver A, B und C hinter dem Load Balancer befinden, wird möglicherweise www.mywebsite.com/index.jsp von Server A und www.mywebsite.com/login.jsp von Server A aus bedient Server B und www.mywebsite.com/accoutdetails.php werden von Server C aus bedient.
Wenn die Anforderungen von (physisch) 3 verschiedenen Servern bedient werden, hat jeder Server ein Sitzungsobjekt für Sie erstellt. Da sich diese Sitzungsobjekte auf drei unabhängigen Feldern befinden, kann niemand direkt wissen, was sich im Sitzungsobjekt befindet des anderen. Um zwischen diesen Serversitzungen zu synchronisieren, müssen Sie möglicherweise die Sitzungsdaten in eine Schicht schreiben / lesen, die allen gemeinsam ist - wie eine Datenbank. Das Schreiben und Lesen von Daten in / aus einer Datenbank für diesen Anwendungsfall ist möglicherweise keine gute Idee. Hier kommt nun die Rolle der Sticky-Session .
Wenn der Load Balancer angewiesen wird, Sticky-Sitzungen zu verwenden, werden alle Ihre Interaktionen mit demselben physischen Server ausgeführt, obwohl andere Server vorhanden sind. Somit ist Ihr Sitzungsobjekt während Ihrer gesamten Interaktion mit dieser Website identisch.
Zusammenfassend lässt sich sagen, dass bei Sticky Sessions alle Ihre Anforderungen an denselben physischen Webserver weitergeleitet werden, während bei einem nicht Sticky Loadbalancer ein beliebiger Webserver ausgewählt werden kann, der Ihre Anforderungen bearbeitet.
Als Beispiel können Sie hier über Amazon Elastic Load Balancer und Sticky Sessions lesen: http://aws.typepad.com/aws/2010/04/new-elastic-load-balancing-feature-sticky-sessions.html