Quero saber a diferença entre sessões com e sem aderência. O que eu entendi depois de ler da internet:
Fixo : apenas um único objeto de sessão estará lá.
Sessão não aderente : objeto de sessão para cada nó do servidor
Quero saber a diferença entre sessões com e sem aderência. O que eu entendi depois de ler da internet:
Fixo : apenas um único objeto de sessão estará lá.
Sessão não aderente : objeto de sessão para cada nó do servidor
Respostas:
Quando o site é servido por apenas um servidor da web, para cada par cliente-servidor, um objeto de sessão é criado e permanece na memória do servidor da web. Todas as solicitações do cliente vão para este servidor da web e atualizam este objeto de sessão. Se alguns dados precisarem ser armazenados no objeto da sessão durante o período de interação, eles serão armazenados nesse objeto da sessão e permanecerão lá enquanto a sessão existir.
No entanto, se o seu site for atendido por vários servidores da web que ficam atrás de um balanceador de carga, o balanceador de carga decidirá para qual servidor da Web (físico) real cada solicitação deve ser acessada. Por exemplo, se houver três servidores Web A, B e C atrás do balanceador de carga, é possível que www.mywebsite.com/index.jsp seja servido no servidor A, www.mywebsite.com/login.jsp seja servido em servidor B e www.mywebsite.com/accoutdetails.php são servidos no servidor C.
Agora, se as solicitações estiverem sendo atendidas de (fisicamente) três servidores diferentes, cada servidor criou um objeto de sessão para você e, como esses objetos de sessão ficam em três caixas independentes, não há como saber o que há no objeto de sessão. do outro. Para sincronizar entre essas sessões do servidor, você pode precisar gravar / ler os dados da sessão em uma camada comum a todos - como um banco de dados. Agora, escrever e ler dados para / de um banco de dados para esse caso de uso pode não ser uma boa ideia. Agora, aqui vem o papel da sessão pegajosa .
Se o balanceador de carga for instruído a usar sessões persistentes, todas as suas interações ocorrerão com o mesmo servidor físico, mesmo que outros servidores estejam presentes. Assim, seu objeto de sessão será o mesmo durante toda a interação com este site.
Para resumir, no caso de sessões fixas, todas as suas solicitações serão direcionadas para o mesmo servidor da web físico, enquanto no caso de um loadbalancer não aderente, poderá escolher qualquer servidor da web para atender às suas solicitações.
Como exemplo, você pode ler sobre o Elastic Load Balancer da Amazon e sessões persistentes aqui: http://aws.typepad.com/aws/2010/04/new-elastic-load-balancing-feature-sticky-sessions.html
Fiz uma resposta com mais alguns detalhes aqui: https://stackoverflow.com/a/11045462/592477
Ou você pode lê-lo lá ==>
Quando você usa o balanceamento de carga, significa que você tem várias instâncias do tomcat e precisa dividir as cargas.