Voglio sapere la differenza tra sessioni appiccicose e non appiccicose. Cosa ho capito dopo aver letto da Internet:
Sticky : sarà presente solo un singolo oggetto sessione.
Sessione non appiccicosa : oggetto sessione per ciascun nodo del server
Voglio sapere la differenza tra sessioni appiccicose e non appiccicose. Cosa ho capito dopo aver letto da Internet:
Sticky : sarà presente solo un singolo oggetto sessione.
Sessione non appiccicosa : oggetto sessione per ciascun nodo del server
Risposte:
Quando il tuo sito Web è servito da un solo server Web, per ogni coppia client-server, viene creato un oggetto sessione che rimane nella memoria del server Web. Tutte le richieste dal client vanno a questo server Web e aggiornano questo oggetto sessione. Se alcuni dati devono essere archiviati nell'oggetto sessione durante il periodo di interazione, vengono archiviati nell'oggetto sessione e rimangono lì finché esiste la sessione.
Tuttavia, se il tuo sito Web è servito da più server Web che si trovano dietro un bilanciamento del carico, il bilanciamento del carico decide a quale server Web (fisico) effettivo dovrebbe andare ogni richiesta. Ad esempio, se ci sono 3 server Web A, B e C dietro il bilanciamento del carico, è possibile che www.mywebsite.com/index.jsp sia servito dal server A, www.mywebsite.com/login.jsp è servito da il server B e www.mywebsite.com/accoutdetails.php sono serviti dal server C.
Ora, se le richieste vengono servite (fisicamente) da 3 server diversi, ogni server ha creato un oggetto sessione per te e poiché questi oggetti sessione si trovano su tre caselle indipendenti, non c'è modo diretto di sapere cosa c'è nell'oggetto sessione dell'altro. Per sincronizzare tra queste sessioni del server, potrebbe essere necessario scrivere / leggere i dati della sessione in un livello comune a tutti, come un DB. Ora scrivere e leggere dati da / a un db per questo caso d'uso potrebbe non essere una buona idea. Ora, ecco il ruolo di sticky-session .
Se al bilanciamento del carico viene richiesto di utilizzare sessioni permanenti, tutte le interazioni avverranno con lo stesso server fisico, anche se sono presenti altri server. Pertanto, l'oggetto della sessione sarà lo stesso durante l'intera interazione con questo sito Web.
Riassumendo, nel caso di sessioni permanenti, tutte le vostre richieste saranno indirizzate allo stesso server Web fisico mentre in caso di un bilanciamento del carico non appiccicoso potrebbe scegliere qualsiasi server web per soddisfare le vostre richieste.
Ad esempio, puoi leggere Elastic Load Balancer di Amazon e sessioni appiccicose qui: http://aws.typepad.com/aws/2010/04/new-elastic-load-balancing-feature-sticky-sessions.html
Ho fatto una risposta con qualche dettaglio in più qui: https://stackoverflow.com/a/11045462/592477
Oppure puoi leggerlo lì ==>
Quando usi il bilanciamento del carico significa che hai diverse istanze di Tomcat e devi dividere i carichi.