| Autor |
Mensagem |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 28/07/2011 08:07:49
|
douglasrodrigo
HelloWorld
Membro desde: 20/07/2006 00:20:08
Mensagens: 12
Offline
|
Olá pessoal, essa semana foi lançado o novo site da Amil, a maior operadora de saúde do país, utilizamos o VRaptor como controller, a experiência foi muito boa, o framework sempre se mostrou bastante maduro e estável, contudo, tivemos alguns problemas de performance, não relacionado ao VRaptor exatamente mas sim ao fato de estarmos utilizando o Spring como DI do controller, acredito que p/ escopo de request ele seja um pouco pesado, a primeira versão do site apresentou bastante lentidão o thread dump de um nó do cluster (aqui nós temos um Weblogic em cluster com 3 nós) mostrou o seguinte:
O thread dump mostrava diversas threads enfileradas aguardando lock de um trecho synchonized de um ConcurrentHashMap do Spring, tentando pegar um bean do container. Analisando ainda a aplicação identificamos um tempo de resposta médio de urls que só passavam pelo controller e que não tinham nenhum tipo de acesso a banco ou qualquer outro tipo de I/O o tempo de resposta médio foi de aproximadamente 200 ms, o que achei um pouco alto, imagino que se deva ao número de acessos ao container de beans do Spring pelo VRaptor e pelos nossos interceptors, com isso resolvemos mudar o DI Framework p/ o Google Guice o que foi uma grata surpresa o tempo de resposta médio das mesmas urls passou a ser de 40 ms, subimos a nova versão e o problema de lentidão foi resolvido.
Apenas p/ constar não tenho nenhum problema com o Spring, continuo usando ele em toda a minha camada de negócios é um grande framework.
Espero que a nossa experiência aqui possa ajudar e até demonstrar como um framework como o VRaptor é escalável, o nosso site tem a média de 160 threads simultâneas, temos aproximadamente no nosso balancer cerca de 120 requisições por segundo.
Estamos usando também o VRaptor p/ os nossos serviços Rest
Serviço de Busca da Rede Credenciada:
This message was edited 3 times. Last update was at 28/07/2011 09:54:46
|
|
|
 |
|
|
![[Post New]](/templates/default/images/icon_minipost_new.gif) 28/07/2011 13:08:22
|
ander.parra
Entusiasta Java
![[Avatar]](/images/avatar/0865860a7cdf4a65d79dd78c31f8a7d9.jpg)
Membro desde: 10/02/2007 11:18:55
Mensagens: 16
Offline
|
Legal ver o Vraptor em produção em mais um site. Qual versão vc está utilizando?
rs
Trabalho na Amil tbm! Estamos usando a versão 3.3.2-SNAPSHOT devido 2 correções que precisamos fazer:
https://github.com/caelum/vraptor/pull/361
https://github.com/caelum/vraptor/pull/356
This message was edited 1 time. Last update was at 29/07/2011 12:48:40
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 28/07/2011 13:21:12
|
renanpto
JavaEvangelist
![[Avatar]](/images/avatar/35df583a06ef378df8540f6db2d36534.jpg)
Membro desde: 16/04/2007 11:58:32
Mensagens: 458
Localização: Curitiba
Offline
|
Fico feliz em saber disso.
Tambem estamos desenvolvendo um produto com o VRaptor.
|
Sun Certified Java Programmer 5
Oracle Certified Web Component Developer 5
www.devlogic.com.br |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 28/07/2011 15:31:39
|
Lucas Cavalcanti
GUJ Hacker
![[Avatar]](/images/avatar/5f6780632f5d27dd0cded5fc9361169e.jpg)
Membro desde: 08/07/2007 00:08:14
Mensagens: 6396
Offline
|
muito legal! =)
|
--
Caelum
www.caelum.com.br
 |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 28/07/2011 23:37:33
|
garcia-jj
JWizard
Membro desde: 13/04/2009 22:11:50
Mensagens: 2715
Localização: Porto Alegre
Offline
|
Muito bom teu relato. Cada diz mais vemos sites grandes usando VRaptor.
Sobre a performance Spring X Guice, é natural que o Guice tenha melhor performance porque é um projeto mais novo e somente DI. Já o Spring além de ter sido o primeiro de todos, possui um grande legado que nem sempre é possível otimizar. Fora que o Spring tem umas coisinhas a mais. Claro... isso não significa que o código interno do Spring seja tão bom, pois tem muita coisinha feia por lá.
|
http://github.com/garcia-jj
Não respondo dúvidas via MP. Use o fórum. |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 29/07/2011 10:56:15
|
ander.parra
Entusiasta Java
![[Avatar]](/images/avatar/0865860a7cdf4a65d79dd78c31f8a7d9.jpg)
Membro desde: 10/02/2007 11:18:55
Mensagens: 16
Offline
|
Imaginávamos que o Guice era mais poderoso, mas não tanto. A troca do Spring pelo Guice possibilitou a utilização do site em produção, pois com o Spring estava muito lento.
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 29/07/2011 23:13:39
|
flavi0
JavaTeenager
Membro desde: 16/09/2006 10:01:18
Mensagens: 150
Offline
|
É bem legal saber que o VRaptor está sendo usado por grandes empresas, não seria o caso de colocar um depoimento da Amil nessa página http://vraptor.caelum.com.br/beneficios.jsp#depoimentos ?
This message was edited 1 time. Last update was at 29/07/2011 23:17:02
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 29/07/2011 23:21:27
|
Daniel.F
GUJ Ranger
Membro desde: 29/03/2007 18:30:39
Mensagens: 909
Offline
|
Legal demais, parabéns para a Caelum e para os demais desenvolvedores que ajudam no projeto, o VRAPTOR é um orgulho para a comunidade brasileira.
Eu queria fazer uma pergunta em relação a arquiteura do projeto da Amil:o papel do Spring no projeto era somente DI, a parte de controle transacional
como é feita?Agora isto cabe ao Guice?
Desde já agradeço.
|
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 01/08/2011 14:37:04
|
douglasrodrigo
HelloWorld
Membro desde: 20/07/2006 00:20:08
Mensagens: 12
Offline
|
O controle de transação continua sendo feito através do Spring, temos um modelo muito complexo de transação pois temos que gerenciar transação entre diversas conexões de bancos e não podemos utilizar XA pois existem conexões acessando banco que não possuem suporte a drivers XA, então temos uma implementação customizada chamada BestEffortsTransactionManager que utiliza o Spring como base.
A mudança do Spring p/ o Guice foi somente na parte dos controllers, injetamos os beans do Spring que os controllers iriam utilizar no Guice.
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 01/08/2011 15:54:12
|
renanpto
JavaEvangelist
![[Avatar]](/images/avatar/35df583a06ef378df8540f6db2d36534.jpg)
Membro desde: 16/04/2007 11:58:32
Mensagens: 458
Localização: Curitiba
Offline
|
ander.parra wrote:Imaginávamos que o Guice era mais poderoso, mas não tanto. A troca do Spring pelo Guice possibilitou a utilização do site em produção, pois com o Spring estava muito lento.
Interessante seu comentário. Acho que vou fazer uns testes com o Guice em um sistema que estamos trabalhando.
Para utilizá-lo no projeto, unica mudança necessária foi adicionar as dependencias pro Guice e a configuração no web.xml ?
Se for só isso, até me animo a testar.
|
Sun Certified Java Programmer 5
Oracle Certified Web Component Developer 5
www.devlogic.com.br |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 01/08/2011 15:57:57
|
douglasrodrigo
HelloWorld
Membro desde: 20/07/2006 00:20:08
Mensagens: 12
Offline
|
Além dessas alterações, você também precisa trocar o Provider e utilizar o GuiceProvider, a alteração é bem simples, principalmente se você não estiver usando nada específico do Spring.
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 01/08/2011 16:04:57
|
renanpto
JavaEvangelist
![[Avatar]](/images/avatar/35df583a06ef378df8540f6db2d36534.jpg)
Membro desde: 16/04/2007 11:58:32
Mensagens: 458
Localização: Curitiba
Offline
|
douglasrodrigo wrote:Além dessas alterações, você também precisa trocar o Provider e utilizar o GuiceProvider, a alteração é bem simples, principalmente se você não estiver usando nada específico do Spring.
A certo, essa alteracao que comentei no post anterior...
Existe mais alguma ? Segundo a documentação do VRaptor não.
|
Sun Certified Java Programmer 5
Oracle Certified Web Component Developer 5
www.devlogic.com.br |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 01/08/2011 16:08:56
|
Lucas Cavalcanti
GUJ Hacker
![[Avatar]](/images/avatar/5f6780632f5d27dd0cded5fc9361169e.jpg)
Membro desde: 08/07/2007 00:08:14
Mensagens: 6396
Offline
|
o vraptor detecta que vc tá usando o guice ou o spring pelos jars no classpath (se não tiver os jars do spring e tiver o do guice, o vraptor usa o guice)
|
--
Caelum
www.caelum.com.br
 |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 01/08/2011 16:14:01
|
renanpto
JavaEvangelist
![[Avatar]](/images/avatar/35df583a06ef378df8540f6db2d36534.jpg)
Membro desde: 16/04/2007 11:58:32
Mensagens: 458
Localização: Curitiba
Offline
|
Lucas Cavalcanti wrote:o vraptor detecta que vc tá usando o guice ou o spring pelos jars no classpath (se não tiver os jars do spring e tiver o do guice, o vraptor usa o guice)
Maravilha então =D
|
Sun Certified Java Programmer 5
Oracle Certified Web Component Developer 5
www.devlogic.com.br |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 01/08/2011 19:16:40
|
renanpto
JavaEvangelist
![[Avatar]](/images/avatar/35df583a06ef378df8540f6db2d36534.jpg)
Membro desde: 16/04/2007 11:58:32
Mensagens: 458
Localização: Curitiba
Offline
|
Boa Noite, Configurei o provider e dependencias pro Guice. Só que deu um problema com um dos interceptors do sistema. Apresentando o seguinte erro no log: Pelo log terei que alterar meus interceptors, isso é o correto ?
This message was edited 1 time. Last update was at 01/08/2011 19:18:38
|
Sun Certified Java Programmer 5
Oracle Certified Web Component Developer 5
www.devlogic.com.br |
|
|
 |
|
|