A sessão / cluster compartilhada do Tomcat entre duas máquinas é possível?

6

Eu tenho uma configuração de vários servidores Tomcat distribuídos entre alguns servidores, todos executando a mesma coisa. O Apache está no topo do Apache e um balanceador de carga na frente dos servidores Apache. Quero agrupar os Tomcats usando a sessão compartilhada para minimizar o tempo de inatividade e a interrupção do usuário durante a implantação de aplicativos.

Eu sei que o clustering funciona dentro do mesmo servidor, mas é possível configurar o Tomcat de forma que ele compartilhe sessões entre servidores em máquinas diferentes?

=> Server 1
==> Apache 1
===> Tomcat 1

=> Server 2
==> Apache 2
===> Tomcat 2

Quando o servidor / Tomcat 1 é desativado, os usuários e suas sessões transferem para o servidor / Tomcat 2 e vice-versa.

    
por Snorri 07.04.2010 / 16:27

4 respostas

2

Dê uma olhada em Teracotta para sessões na web .

Use Terracotta's fast, reliable web sessions plugin to get the scalability benefits of a stateless web architecture without overloading your database or rewriting your application. Terracotta for Sessions works with your favorite web framework and your own custom session objects.

O tutorial das sessões da web lista cinco etapas simples para você fazer para avaliar o produto ( FOSS).

    
por 09.04.2010 / 08:25
2

Eu estou trabalhando na configuração da mesma coisa, o link abaixo do Apache dá uma visão geral de como conseguir isso:

link

Existem basicamente duas partes para isso:

1) Tornando seus objetos de sessão serializáveis

2) Configurando a configuração do clustering no tomcat (server.xml).

Dependendo do gerenciador de tomcat usado, talvez seja necessário ativar o multicast nos nós para permitir a comunicação entre os nós. A replicação da sessão é tratada pelo tomcat por meio desses pings multicast.Eu vi muitas pessoas usando essa abordagem e ela funcionou para elas (Parece ser uma maneira padrão / simples de fazer isso).

Também aqui está uma postagem detalhada sobre o mesmo - há 5 partes, com alguns vídeos.

link

P.S:

Estou usando a mesma abordagem, para o mesmo problema com dois nós tomcat. Eu estou enfrentando um pequeno problema, que está documentado abaixo, se você tiver sucesso / se deparar com problema semelhante, por favor, dê uma olhada neste

Problema de replicação de sessão do Tomcat

    
por 07.10.2016 / 17:02
0

Você pode salvar sessões no banco de dados, assim elas são acessíveis de ambos os gatos. Ou armazene-os em um diretório compartilhado entre os gatos.

    
por 07.04.2010 / 18:52
0

Você pode salvar sessões no memcached , que é compartilhado entre os dois servidores. Isso deve oferecer melhor desempenho e escalabilidade do que usar sessões compartilhadas em um banco de dados ou um diretório compartilhado entre n servidores.

    
por 02.08.2010 / 00:48