| Autor |
Mensagem |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 19/01/2007 17:56:05
|
felipecruz
JavaTeenager
Membro desde: 18/07/2006 10:25:29
Mensagens: 150
Offline
|
Queria compartilhar experiências sobre isso.
Achei umas dicas sobre como ter melhor desempenho com RMI. A mais interessante é zipar as informações trafegando na rede.
Alguem já implementou um servidor RMI para muitos clientes (100+)? Já teve problemas?
valeu!
|
loogica - http://blog.loogica.net |
|
|
 |
|
|
![[Post New]](/templates/default/images/icon_minipost_new.gif) 19/01/2007 19:42:37
|
saoj
JWizard
![[Avatar]](/images/avatar/2e7ceec8361275c4e31fee5fe422740b.png)
Membro desde: 09/03/2004 23:34:46
Mensagens: 2667
Localização: Chicago, EUA
Offline
|
Há uns 5 anos atrás não escalava para mais de 1500-2000 usuários.
Não sei como está agora...
|
Sergio A Oliveira Jr. - saoj
ExperiMENTA:
Mentawai = http://www.mentaframework.org - Full-stack Java Web Framework com Configuracão Programática
MentaQueue = http://mentaqueue.soliveirajr.com - Queue de alta-performance.
MentaLog = http://mentalog.soliveirajr.com - Non-intrusive, fast, garbage-less, colored and straightforward logging
MentaBean = http://mentabean.soliveirajr.com - Tiny ORM with SQL Builder
MentaRegex = http://mentaregex.soliveirajr.com - Perl-style regex for Java.
MentaContainer = http://mentacontainer.soliveirajr.com - Straightforward IoC, DI e Auto-Wiring
Space4J = http://www.space4j.org - Banco-de-dados de Objetos em Memória
Options-Lib = https://github.com/saoj/options-lib - Ruby classes para ter acesso as opcoes do Yahoo Finance
Selleto = http://www.selleto.com.br
Flipinion = http://www.flipinion.com
Kawai = http://www.kawaiwiki.org
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 20/01/2007 10:17:46
|
pcalcado
Moderador
![[Avatar]](/images/avatar/110eec23201d80e40d0c4a48954e2ff5.jpg)
Membro desde: 08/03/2004 17:19:35
Mensagens: 5174
Localização: Sydney - Australia
Offline
|
Você precisa usar RMI diretamente, não pode utilizar EJBs? Ou um protocolo request/response como REST/SOAP/XML-RPC/Burlap/Hessian?
Qual o cenário?
|
Phillip Calçado "Shoes"
http://fragmental.tw/
http://blog.fragmental.com.br/
"It is unfortunate that much of what is called 'object-oriented programming today is simply old style programming with fancier constructs." - Alan Kay |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 22/01/2007 10:12:40
|
felipecruz
JavaTeenager
Membro desde: 18/07/2006 10:25:29
Mensagens: 150
Offline
|
Preciso de "respostas" assincronas (usando callbacks RMI)
Até poderiamos usar EJB(ida) + JMS(volta) mas acabamos escolhendo por algo mais simples (RMI puro) e porque outras aplicações aqui ja usam RMI também..
Até que eu soube que isso pode ter que atender *muitos* usuários.. hehe..
Bom.. mas se escala até 1500 usuários então ta bem tranquilo hehe.. Mais por curiosidade agora.. seria possivel escalar pra uns 5 mil?
|
loogica - http://blog.loogica.net |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 22/01/2007 12:01:02
|
louds
Moderador
![[Avatar]](/images/avatar/1e48c4420b7073bc11916c6c1de226bb.jpg)
Membro desde: 29/04/2003 23:09:15
Mensagens: 4061
Localização: São Paulo
Offline
|
A escalabilidade do RMI depende muito do workload e característica do teu sistema.
Primeiro que RMI é um protocolo super pesado, precisa de um name service, tem o DGC, usa serialização pra tudo e permite remote classloading, para começar. Ou seja, o mecanismo de marshaling é bem pesado.
Se o teu workload é de RPC com parâmetros e retorno pequenos, vale a pena sim usar, a escalabilidade é baixa-media, já que você vai acabar usando o modelo de thread-per-client, que não escala bem para mais de 500-600 clientes. Aqui temos máquinas que escalam até 3000, mas ela tem 10cpus e 8gigas de ram.
Caso teu workload tenha uma taxa de requisições alta ou troca de dados muito grandes, RMI deixa a desejar, principalmente por conta do overhead enorme importo pelo mecanismo de marshaling. Já vi tentarem usar RMI em um sistema que precisava atender um volume muito alto de requisições e simplesmente não escalou.
Moral da história, conheça teu workload e características do teu sistema primeiro, depois veja se compensa seguir com algo como RMI. Por exemplo, já escrevi/vi sistemas em Java que suporta 10mil conexões em máquinas xing-ling, mas eram totalmente bare-bones e nunca usavam thread-per-client.
|
http://www.kumpera.net/blog/
http://www.mono-project.com/
"Each individual should work for himself. People will not sacrifice themselves for the company. They come to work at the company to enjoy themselves."
Soichiro Honda |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 22/01/2007 12:47:22
|
felipecruz
JavaTeenager
Membro desde: 18/07/2006 10:25:29
Mensagens: 150
Offline
|
Então acho que segui um bom caminho!
Eu preciso de muitos clientes conectados mas a troca de mensagens não é tao grande, o tamanho dos objetos também não é tão grande e o processamento não é muito pesado...
Até agora esta tudo ok. Fiquei preocupado com o futuro próximo mas acho que posso ficar sossegado por enquanto..
|
loogica - http://blog.loogica.net |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 22/01/2007 12:53:00
|
louds
Moderador
![[Avatar]](/images/avatar/1e48c4420b7073bc11916c6c1de226bb.jpg)
Membro desde: 29/04/2003 23:09:15
Mensagens: 4061
Localização: São Paulo
Offline
|
felipecruz wrote:Então acho que segui um bom caminho!
Eu preciso de muitos clientes conectados mas a troca de mensagens não é tao grande, o tamanho dos objetos também não é tão grande e o processamento não é muito pesado...
Até agora esta tudo ok. Fiquei preocupado com o futuro próximo mas acho que posso ficar sossegado por enquanto..
Neste caso você deve fazer um pequeno protótipo para prova de conceito e submeter ele a carga planejada do sistema. Não fique no chutômetro.
|
http://www.kumpera.net/blog/
http://www.mono-project.com/
"Each individual should work for himself. People will not sacrifice themselves for the company. They come to work at the company to enjoy themselves."
Soichiro Honda |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 22/01/2007 13:47:07
|
felipecruz
JavaTeenager
Membro desde: 18/07/2006 10:25:29
Mensagens: 150
Offline
|
Claro.. mas até chegar a uns 100 usuários, vai demorar um pouco ainda..
Até la ja vai estar bem testado! hehe
valeu!
|
loogica - http://blog.loogica.net |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 22/01/2007 15:32:32
|
saoj
JWizard
![[Avatar]](/images/avatar/2e7ceec8361275c4e31fee5fe422740b.png)
Membro desde: 09/03/2004 23:34:46
Mensagens: 2667
Localização: Chicago, EUA
Offline
|
Por que vc precisa de respostas assíncronas?
Dá um exemplo prático ai!
Não sei se estou falando bobagem, mas as vezes respostas assíncronas, isto é, callbacks para os quais vc pode ter que esperar um tempo, podem ser facilmente obtidos sincronamente fazendo uma requisição ao servidor de N em N segundos.
|
Sergio A Oliveira Jr. - saoj
ExperiMENTA:
Mentawai = http://www.mentaframework.org - Full-stack Java Web Framework com Configuracão Programática
MentaQueue = http://mentaqueue.soliveirajr.com - Queue de alta-performance.
MentaLog = http://mentalog.soliveirajr.com - Non-intrusive, fast, garbage-less, colored and straightforward logging
MentaBean = http://mentabean.soliveirajr.com - Tiny ORM with SQL Builder
MentaRegex = http://mentaregex.soliveirajr.com - Perl-style regex for Java.
MentaContainer = http://mentacontainer.soliveirajr.com - Straightforward IoC, DI e Auto-Wiring
Space4J = http://www.space4j.org - Banco-de-dados de Objetos em Memória
Options-Lib = https://github.com/saoj/options-lib - Ruby classes para ter acesso as opcoes do Yahoo Finance
Selleto = http://www.selleto.com.br
Flipinion = http://www.flipinion.com
Kawai = http://www.kawaiwiki.org
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 22/01/2007 16:15:49
|
felipecruz
JavaTeenager
Membro desde: 18/07/2006 10:25:29
Mensagens: 150
Offline
|
São alertas que rodam no servidor e podem disparar a qualquer momento..
Os intervalos sao configurados pelos clientes..
|
loogica - http://blog.loogica.net |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 19/04/2007 19:16:49
|
Luca
Moderador
![[Avatar]](/images/avatar/17e62166fc8586dfa4d1bc0e1742c08b.jpg)
Membro desde: 06/09/2002 14:30:10
Mensagens: 5810
Localização: São Paulo/SP ou Paraty/RJ
Offline
|
Olá
felipecruz wrote:Preciso de "respostas" assincronas (usando callbacks RMI)
Até poderiamos usar EJB(ida) + JMS(volta) mas acabamos escolhendo por algo mais simples (RMI puro) e porque outras aplicações aqui ja usam RMI também..
Até que eu soube que isso pode ter que atender *muitos* usuários.. hehe..
Bom.. mas se escala até 1500 usuários então ta bem tranquilo hehe.. Mais por curiosidade agora.. seria possivel escalar pra uns 5 mil?
Respondendo bem atrasado...
JMS puro sem EJBs ou mesmo com EJBs é BEM mais simples do que RMI porque tudo que poderia ser um tiquinho complexo fica a cargo do servidor de mensagens.
[]s
Luca
|
Dare Obasanjo (Program Manager at Microsoft)
"The folks I know from across the industry who have to build large scale Web services on the Web today at Google, Yahoo!, Facebook, Windows Live, Amazon, etc are using RESTful Web services. The only times I encounter someone with good things to say about WS-* is if it is their job to pimp these technologies or they have already "invested" in WS-* and want to defend that investment."
CEP, JMS, JMX e coisas afins (ou não)
http://lucabastos.blogspot.com/ |
|
|
 |
|
|