Em minha equipe, desenvolvemos um sistema que será aberto ao publico, para pesquisas e atualizações.
Imagino uma média inicial de 500 acessos diarios, mas depois de um tempo ficar na casa dos 2000 acessos diários. 90% destes acesso serão de usuário que não precisam se logar. Os outros 10% seriam acesso de publicadores de informações e administradores.
O sistema foi desenvolvido com JAAS, JSF, RichFaces e JPA com Hibernate.
Sempre gostei da simplicidade e da performance do Tomcat, e é o que estamos usando para nosso desenvolvimento e testes internos.
Duvida:
O Tomcat aguenta o tranco de uma aplicação dessas ?
Quais cuidados deveria tomar?
É possivel fazer cluster de tomcat ? É viável ou vale a pena partir para algo mais parrudo como um JBoss(que usa tomcat internamente) ?
O sistema rodará em linux, provavelmente o CentOS.
[quote=Renato_Ceadareanu]Aconselho um mais robusto como JBOSS, já tive problemas de performace com quase essa arquitetura com o TOMCAT, gritou no 2º dia
Abraços[/quote]
E a performcance melhorou Renato?
Pois tanto as servlets quanto os jsps no JBoss são servidos pelo Tomcat interno dele, certo ?
Baseado nesses números que você tá falando não dá pra tirar muitas conclusões, mas 2000 acessos diários é coisa pouca. Tem sistema aqui que tem esse número de acessos por segundo. Acredito que você não deva ter muito o que se preocupar.
Ouvi dizer que o UOL é em Jetty mesmo (obviamente não é o Jetty sozinho que vai resolver os seus problemas; e seu site tem relativamente pouco tráfego).
[quote=andre_java][quote=Renato_Ceadareanu]Aconselho um mais robusto como JBOSS, já tive problemas de performace com quase essa arquitetura com o TOMCAT, gritou no 2º dia
Abraços[/quote]
E a performcance melhorou Renato?
Pois tanto as servlets quanto os jsps no JBoss são servidos pelo Tomcat interno dele, certo ?[/quote]
/ -
Na verdade o Tomcat do JBoss (aka JBossWeb) possui várias customizações que abrangem desde segurança, leaks e performance. Não é o mesmo web container baixado diretamente do site da Apache.
Não posso mencionar sobre a arquitetura da UOL, mas digamos que eles tbm utilizam servidores de aplicação (com mensageria, EJBs e tudo mais) e não apenas um container servlet como o Jetty.
Sabendo configurar o Tomcat, ele aguenta o mesmo tranco que o Jetty. Como está escrito no post do blog da Caelum, eles não sabiam configurar o Tomcat e já tinham experiência com o Jetty por isso migraram para esse container. Melhor ainda é o Jboss Web, uma versão turbinada do Tomcat que a Jboss embute no seu Application Server e que está disponível para uso separadamente.
Algumas sugestões de configuração para o Tomcat rodar bem em produção (baseado em minhas experiências aqui na empresa):
instalar como serviço do S.O. (melhora o gerenciamento de memória);
compartilhar as bibliotecas (.jar) comuns das aplicações na pasta específica para isso (melhora o deploy);
configurar as opções da máquina virtual Java como Garbage Collector, PermSize e limites de memória;
criar no server.xml um pool de threads e ligá-lo ao conector HTTP (melhora o processamento de requisições).