Causa do incidente: Um projeto principal “fotos descrevendo coisas bonitas”, e outra subfunção é a função de entrada do proprietário da marca, que é um projeto separado do projeto principal, para compartilhar informações do usuário logado, o compartilhamento de sessão é. alcançado, dois tomcats, um tomcat6, um tomcat7
Realizando o compartilhamento de sessão no sistema Windows do projeto da web
Primeiro passo:
Configure o seguinte código nos arquivos context.xml dos dois tomcats:
<Gerente className="de.javakaffee.web.msm.MemcachedBackupSessionManager"memcachedNodes="n1:127.0.0.1:11211"lockingMode="auto"sticky="true"requestUriIgnorePattern=".*/.(ico|png|gif|jpg| css|j s)$"sessionBackupAsync="false"sessionBackupTimeout="100"transcoderFactoryClass="de.javakaffee.web.msm.serializer.kryo.KryoTranscoderFactory"copyCollectionsForSerialization="true"/>
Etapa dois:
Pacote Jar adicionado no Tomcat6:
Pacote Jar adicionado no Tomcat7:
PS: Use memcache para salvar a sessão do Tomcat
O principal objetivo ao escrever este artigo é corrigir alguns erros na Internet.
Pré-requisitos:
1. memcached está funcionando normalmente
2. O Tomcat está funcionando normalmente.
1. Método de instalação e pacote de instalação
javolution-5.4.3.1.jar
memcached-2.4.2.jar
memcached-session-manager-1.3.0.jar
msm-javolution-serializer-cglib-1.3.0.jar
msm-javolution-serializer-jodatime-1.3.0.jar
Método de instalação: Coloque esses pacotes em /usr/local/tomcat6.0/lib.
2. Edite o arquivo de configuração do Tomcat.
<Isso é importante porque a maioria dos artigos na Internet fala sobre modificar a configuração do servidor. Atualmente, descobriu-se que a edição do arquivo context.xml pode lançar imediatamente a sessão no memcache. >
# vim /usr/local/tomcat6.0/conf/context.xml <Context> <!-- Adicione o seguinte conteúdo neste campo Preencha o IP do servidor memcached e o número da porta ao entrar no nó --> <Manager. className="de.javakaffee.web.msm.MemcachedBackupSessionManager" memcachedNodes="n1:10.254.41.197:11211" requestUriIgnorePattern=".*/.(png|gif|jpg|css|js)$" sessionBackupAsync="false" sessionBackupTimeout="100" transcoderFactoryClass="de.javakaffee.web.msm.serializer.javolution.JavolutionTranscoderFactory" copyCollectionsForSerialization="false" /> </Context>
3. Como testar?
Meu método de teste atual é implementar o balanceamento de carga através do mod_jk do Apache (escrito em um artigo anterior) e habilitar a replicação de sessão entre tomcats.
O resultado é que o ID da sessão mudará o nó a cada envio do usuário, mas o ID não mudará.
Por exemplo:
ID CFC1ACAC6B0B8C27BEA76919F3A99BF8-n1.tomcat2
O próximo envio será: <O nó foi trocado, mas o ID permanece inalterado>
ID CFC1ACAC6B0B8C27BEA76919F3A99BF8-n1.tomcat1
Combinado com o status do memcache: <Quando não consegui lançar a sessão para o memcached com êxito, cmd_set era 0>
# perl memcached-tool.pl 10.254.41.197:11211 estatísticas
cmd_get 27
cmd_set 15
get_hits 12
# perl memcached-tool.pl 10.254.41.197:11211 estatísticas
cmd_get31
cmd_set 17
get_hits 14
Acho que com base no julgamento acima, a configuração foi bem-sucedida!