RMI escala?  XML
Índice dos Fóruns » Java Avançado
Autor Mensagem
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
saoj
JWizard
[Avatar]

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


[Email] [WWW]
pcalcado
Moderador
[Avatar]

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
[Email] [WWW] [Yahoo!] [MSN]
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
louds
Moderador
[Avatar]

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
[ICQ]
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
louds
Moderador
[Avatar]

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
[ICQ]
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
saoj
JWizard
[Avatar]

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


[Email] [WWW]
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
Luca
Moderador
[Avatar]

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/
[Email] [WWW]
 
Índice dos Fóruns » Java Avançado
Ir para:   
Powered by JForum 2.1.8 © JForum Team