Sesje Sticky i NON-Sticky

Chcę poznać różnicę między sesjami sticky - i non-sticky. Co zrozumiałem po przeczytaniu z Internetu:

Sticky: będzie tam tylko jeden obiekt sesji.

Nie-sticky session: obiekt sesji dla każdego węzła serwera

 165
Author: kryger, 2012-05-08

2 answers

Gdy twoja strona jest obsługiwana tylko przez jeden serwer WWW, dla każdej pary klient-serwer tworzony jest obiekt sesji i pozostaje w pamięci serwera www. Wszystkie żądania od klienta trafiają na ten web serwer i aktualizują ten obiekt sesji. Jeśli niektóre dane muszą być przechowywane w obiekcie sesji w okresie interakcji, są one przechowywane w tym obiekcie sesji i pozostają tam tak długo, jak długo istnieje sesja.

Jednakże, jeśli Twoja strona jest obsługiwana przez wiele serwerów internetowych, które siedzą za load balancerem, load balancer decyduje, który rzeczywisty (fizyczny) serwer sieci Web powinien trafić do każdego żądania. Na przykład, Jeśli za load balancerem znajdują się 3 Serwery WWW A, B I C, możliwe jest, że www.mywebsite.com/index.jsp jest obsługiwany z serwera a, www.mywebsite.com/login.jsp serwowane jest z serwera B i www.mywebsite.com/accoutdetails.php są serwowane z serwera C.

Teraz, jeśli żądania są obsługiwane z (fizycznie) 3 różnych serwerów, każdy serwer stworzył obiekt sesji dla Ciebie, a ponieważ te obiekty sesji znajdują się na trzech niezależnych polach, nie ma bezpośredniego sposobu, aby jeden wiedział, co znajduje się w obiekcie sesji drugiego. W celu synchronizacji pomiędzy tymi sesjami serwera, może być konieczne zapis/odczyt danych sesji do warstwy, która jest wspólna dla wszystkich - jak DB. Teraz zapis i odczyt danych do / Z db dla tego przypadku użycia może nie być dobrym pomysłem. Teraz nadchodzi rola sticky-session .

Jeśli Load balancer jest poinstruowany, aby używać sticky sessions, wszystkie twoje interakcje będą miały miejsce z tym samym serwerem fizycznym, nawet jeśli inne serwery są obecne. W ten sposób obiekt sesji będzie taki sam przez całą interakcję z tą witryną.

Podsumowując, w przypadku Sticky Sessions, wszystkie Twoje żądania będą kierowane do tego samego fizycznego serwera WWW, podczas gdy w przypadku nie-sticky loadbalancer może wybrać dowolny serwer WWW do obsługi twoich żądań.

Jako przykład można przeczytać o Elastic Load Balancer i sticky sessions Amazona tutaj: http://aws.typepad.com/aws/2010/04/new-elastic-load-balancing-feature-sticky-sessions.html{[14]

 472
Author: TJ-,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-07-06 08:40:44

Odpowiedziałem na więcej szczegółów tutaj : https://stackoverflow.com/a/11045462/592477

Albo możesz go tam przeczytać = = >

Gdy używasz loadbalancing oznacza to, że masz kilka instancji tomcat i musisz podzielić obciążenia.

  • Jeśli używasz replikacji sesji bez sticky session: wyobraź sobie, że masz tylko jednego użytkownika używającego aplikacji sieci web, a masz 3 Tomcat. Ten użytkownik wysyła kilka żądań do Twojej aplikacji, a następnie na loadbalancer wyśle niektóre z tych próśb do pierwszego Tomcata instancji, i wysłać kilka innych z tych żądań do drugiego instancji, a inne do trzeciego.
  • Jeśli używasz sticky session bez replikacji: wyobraź sobie, że masz tylko jednego użytkownika korzystającego z aplikacji internetowej i masz 3 tomcat przypadki. Ten użytkownik wysyła kilka żądań do Twojej aplikacji, a następnie loadbalancer wyśle pierwsze żądanie użytkownika do jednego z trzech instancji Tomcata, oraz wszystkich innych żądań, które są wysyłane przez to użytkownik podczas jego sesji zostanie wysłany do tej samej instancji tomcat. Podczas tych żądań, jeśli wyłączysz lub zrestartujesz ten tomcat instancja (używana instancja tomcat) loadbalancer wysyła Pozostałe żądania do innej instancji tomcat, która jest nadal uruchomiony, ale ponieważ nie używa się replikacji sesji, instancja tomcat, który odbiera Pozostałe żądania, nie ma kopii sesji użytkownika następnie dla tego tomcat użytkownik rozpoczyna sesję : the użytkownik loose his session i jest odłączony od aplikacji internetowej, chociaż aplikacja internetowa nadal działa.
  • Jeśli używasz sticky session z replikacją sesji: wyobraź sobie, że masz tylko jednego użytkownika korzystającego z aplikacji internetowej i masz 3 tomcat przypadki. Ten użytkownik wysyła kilka żądań do Twojej aplikacji, a następnie loadbalancer wyśle pierwsze żądanie użytkownika do jednego z trzech instancji tomcat, oraz wszystkie inne żądania, które są wysyłane przez to użytkownik podczas jego sesji zostanie wysłany do tego samego tomcat przykład. Podczas tych żądań, jeśli wyłączysz lub zrestartujesz ten tomcat instancja (używana instancja tomcat) loadbalancer wysyła Pozostałe żądania do innej instancji tomcat, która jest nadal uruchamianie, podczas korzystania z replikacji sesji, instancji tomcat, która odbiera Pozostałe żądania ma kopię sesji użytkownika, a następnie Użytkownik utrzymuje swoją sesję : Użytkownik kontynuuje przeglądanie sieci aplikacja bez rozłączania, wyłączenie instancji tomcat nie wpływa na użytkownika nawigacja.
 53
Author: Nico,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-05-23 10:31:37