BT

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

por Julio Faerman em 20 Mai 2011 |

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.

Olá visitante

Você precisa cadastrar-se no InfoQ Brasil ou para enviar comentários. Há muitas vantagens em se cadastrar.

Obtenha o máximo da experiência do InfoQ Brasil.

Dê sua opinião

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

Receber menssagens dessa discussão

Aplicabilidade da válvula by Fernando Lozano

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 Galvao

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

Receber menssagens dessa discussão

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

Receber menssagens dessa discussão

2 Dê sua opinião

Conteúdo educacional

Feedback geral
Bugs
Publicidade
Editorial
InfoQ Brasil e todo o seu conteúdo: todos os direitos reservados. © 2006-2013 C4Media Inc.
Política de privacidade
BT