BT

Disseminando conhecimento e inovação em desenvolvimento de software corporativo.

Contribuir

Tópicos

Escolha a região

Início Notícias Novo componente para Tomcat 7 permite reduzir drasticamente sessões abandonadas

Novo componente para Tomcat 7 permite reduzir drasticamente sessões abandonadas

Favoritos

O novo valve Crawler Session Manager para o Tomcat 7 pode ajudar muito os administradores de aplicações web públicas, nas quais o excesso de sessões é um problema complexo que frequentemente passa despercebido – pois é difícil distinguir usuários legítimos de robôs de busca e outros sistemas.

Mark Thomas, responsável pelo site de pendências da Apache Software Foundation (que usa o JIRA executando sobre o Tomcat 7), apresentou uma experiência interessante em seu blog:

Alguns meses atrás, ao examinar a interface de gerenciamento do JIRA, notei que havia aproximadamente 100 mil sessões concorrentes. Dado que existem apenas 60 mil usuários cadastrados e menos de 5 mil ativos por mês, o número me pareceu realmente exagerado.

A investigação do problema revelou um suspeito inusitado:

O log de acessos mostrou que quando os indexadores (ex.: googlebot, bingbot etc.) percorriam o site do JIRA, criavam uma nova sessão a cada requisição. Para nossa instância do JIRA, isso significava que 95% das sessões eram abandonadas pelos bots após uma requisição.

A mudança gerou resultados drásticos. Somente implementar a valve no Tomcat que hospeda o JIRA em issues.apache.org reduziu 20 vezes a média de sessões concorrentes, de cerca de 100 mil para 5 mil.

O que a valve Crawler Session Manager faz é não iniciar uma segunda sessão se o cabeçalho HTTP user-agent casar com uma expressão regular, que por padrão captura os buscadores mais conhecidos  (“*[bB]ot.*|.*Yahoo! Slurp.*|.*Feedfetcher-Google.*”). A configuração do valve permite que a lista seja estendida para outros buscadores e clientes que não gerenciam cookies, como é frequentemente o caso de clientes REST.

Além de implementar a especificação de Servlets 3.0, o novo Tomcat inclui funcionalidades importantes para o desenvolvimento de aplicações web públicas, como o filtro de proteção contra ataques Cross-Site Request Forgery (CSRF) e a detecção de vazamentos de memória. Para conhecer mais sobre estes componentes, visite o site oficial do projeto e a comunidade Tomcat Expert, que frequentemente publica detalhes sobre o funcionamento interno do Tomcat.

Avalie esse artigo

Relevância
Estilo/Redação

Conteúdo educacional

  • Aplicabilidade da válvula

    by Fernando Lozano,

    Seu comentário está aguardando aprovação dos moderadores. Obrigado por participar da discussão!

    Talvez não esteja claro para os leitores, mas esta válvula só gera a drástica diminuição na quantidade de seções para sites internet, que estão expostos aos crawlers de search engine. Um site ou aplicação intranet típico não teria nenhum ganho pela ativação da válvula.

    Já no caso de Web Services REST, não deveria haver sessão e pronto. Um cliente REST não vai ficar navegando por sites aleatoriamente, e uma aplicação REST deveria ser programada com o cuidado de ser stateless, certo?

  • Re: Aplicabilidade da válvula

    by Leonardo Galvão,

    Seu comentário está aguardando aprovação dos moderadores. Obrigado por participar da discussão!

    Isso mesmo, Lozano. Julio explicitou lá no início que a utilidade seria para as "aplicações web públicas". Quanto a aplicações REST, mesmo as públicas, realmente esse valve ficaria sem ter o que fazer. :)

HTML é permitido: a,b,br,blockquote,i,li,pre,u,ul,p

HTML é permitido: a,b,br,blockquote,i,li,pre,u,ul,p

BT