Qual a melhor arquitetura?

23 respostas
R

Galera!

Estamos falando de uma aplicação com uma demanda alta de acessos e processamento simultaneos…

Qual arquitetura vcs usariam? tecnologias… frameworks, plataformas?

Eu uso spring como base para tudo…

Vamos supor o twitter, o que voces usariam para construir uma app desse nivel?

desde ja obrigado pelas sugestões…

23 Respostas

rogelgarcia

Eu acho Spring uma boa opção para a camada de serviços…

Quantos acessos simultâneos você vai ter? Pq acessos nível twitter é uma coisa… 300 acessos simultaneos é outra…

Qual é o tempo de resposta esperado?

As páginas serão pesadas? A aplicação é grande?

Muita leitura apenas? ou gravaçao tb?

Tem algum outro requisito, importante para ser levado em consideração?

R

Eu diria que seria algo parecido com um guia…

Ex: Guia de Moteis…

é algo bem semelhantes a isto

rogelgarcia

Então será basicamente leitura de dados… e pouca gravação…

E os acessos, qual a expectativa de usuários simultâneos?

rogelgarcia

É interessante verificar algum recurso de cache das páginas…

Aí vai ficar uma bala…

Quando voce renderizar uma página… deixe o HTML gerado em cache…

E nas proximas requisições bastará entregar o HTML…

R

Na verdade haverá uma média estimada de uns 100 a 300 usuario simultaneos… a questao do twitter foi por curiosidade…

estou desenvolvendo em java spring jpa hibernate vraptor jquery e mysql.

havera bastante consultas e listagens de informações, porem haverão cadastros e iterações de usuários com clientes. entao existirao CRUD´s sim.

minha preocupacao sera na hora de hospedar, gostaria que minha app tivesse escalabilidade…

acredito que a arquitetura q adotei e a modelagem estao boas…

minha duvida é em obter performance com meu servico de host…

desde ja obrigado

ate logo

rogelgarcia

Sua aplicação pelo que me parece é uma séria candidata a poder fazer cache das páginas…

Podendo… a performance será excelente…até praticamente independente da arquitetura usada…


Só uma pergunta… vc está usando Spring e vRaptor… pq não só usar o spring?

R

Estou usando o vraptor como controller MVC da aplicação e o spring para a camada de negocios

rogelgarcia

O spring mvc não te satisfaz?
(isso é só curiosidade)

R

tenho gostado da proposta oferecida pelo vraptor, ótima proposta… e o spring acho indispensaevl em qualqer app

um plano de hospedagem na locaweb por exemplo… host + java + mysql…

com uma resposta satisfatória aos usuarios

como eu faco pra saber o qto minha app aguenta?

rogelgarcia

usa um projeto chamado jmeter

http://jakarta.apache.org/jmeter/

Mas o vraptor… é praticamente o Spring MVC, com alguns tunes, nao?!

rogelgarcia

Uma coisa que vc tem que verificar é se o locaweb… vai suportar a sua arquitetura… pq costumam ser muito limitados esses serviços java…

R

Pelo que vi a versao do spring MVC 3 é parecida mesmo, mas a anterior acho q é diferente, tenho utilizado o VRaptor com o Spring e tenho gostado, principalmente pelo suporte aqui da galera no GUJ.

Vou colocar a app no ar em breve e vou acompanhar o desempenho

M

Sera que ele acha mesmo que todo twitter é uma app, e ainda usa frameworks Java?

R

foi so um exemplo

obrigado

Leozin

Fiquei na mesma dúvida. Vai ver tem gente que acha que o Twitter foi feito em JSF + Hibernate + Spring + Axis2 + EJB + CouchDB

Kenobi

rodrigo.lopes:
Eu diria que seria algo parecido com um guia…

Ex: Guia de Moteis…

é algo bem semelhantes a isto

Um guia de motéis não tem 300 usuários simultâneos, pode acreditar, se você tiver 2 usuários simultâneos é muita coisa, logo qualquer trem vai dar conta.

Você só precisa se prepocupar com uma coisa básica, que a galera do PHP esquece sempre, pois já peguei vários sites com too many MySQL Connections, um Pool de Conexões - DataSource.

Configurou isso ? Tá de boa :-).

Nada de querer ficar abrindo a cada chamada e pior, não fechá-la !! ( A não ser que esteja usando Java 7 rss)

Como está usando Spring, aproveite os Templates, template do Hibernate quebra um galho e faça a injeção de dependência da SessionFactory ao DataSource, tudo ligado :slight_smile:

Se der pra usar o HibernateSearch seria bacana, pra não onerar o banco com Search feito em queries, enche a paciência e tente usar o EhCache para aquelas queries mais comuns, deixando tudo pré-pronto.

Não tem segredo uma aplicação dessa e hospedagem, tente algo como http://www.server4you.com/ - dica do Vinícius Senger da Globalcode :slight_smile:

A

A arquitetura do Twitter está aqui: http://highscalability.com/blog/2009/6/27/scaling-twitter-making-twitter-10000-percent-faster.html

leandronsp

Olha, na aplicação onde estou trabalhando ( http://www.ebah.com.br ) , nossa página mais acessada, que é a página de arquivo, tem 100k de page-view por dia. No site todo temos em média 5 requisições simultaneas por segundo.
A arquitetura no momento é constituída pelo VRaptor, JPA/Hibernate, um cluster horizontal com 4 tomcat´s, cluster de MySql e Lucene pra indexacao.

Ainda está assim, não sabemos o dia de amanhã, mas mesmo com essa arquitetura, de nada adiantaria se não usásessmos as boas práticas para desenvolvimento web.
Isto vc tem que seguir não importa qual arquitetura.

V

Olá,

estou começando com a definição de arquitetura de uma aplicação WEB que deve estar 99% do dia disponível e teria em média 100 acessos simultâneos.
devido a disponibilidade, pensei em clusterizar…
dai pensei no JBoss como servidor de aplicação e PostgreSQL como banco de dados

o que vcs acham?
alguma sugestão?

obrigada

deniswsrosa

Eu inicialmente diria que seria ótimo utilizar Oracle como BD, mas é claro existe fatores $. Na faltas dele postgres é uma ótima opção, quanto ao servidor de aplicação, o jboss é excelente mas geralmente precisa de ajustes finos para ter um ótimo desempenho, se disponibilidade é um fator importante eu recomendaria o GlassFish HADB 2.X

V

Olá Denis,

acabei optando por postgresql pelo fator $$
desculpe-me… só pra não ter dúvidas… então a recomendação seria utilizar o GlassFish no lugar do JBoss?

obrigada

deniswsrosa

vanray:
Olá Denis,

acabei optando por postgresql pelo fator $$
desculpe-me… só pra não ter dúvidas… então a recomendação seria utilizar o GlassFish no lugar do JBoss?

obrigada

Cara, a melhor ferramenta é aquela que você possui mais conhecimento, se você conhece muito bem JBoss, então use-o. Indiquei essa versão do glassfish por que ela é indicada em casos que necessita de alta disponibilidade e um bom desempenho, além do ótimo console de administração que o glassfish tem que permite montar um cluster sem maiores dificuldades.

peerless

rogelgarcia:
usa um projeto chamado jmeter

http://jakarta.apache.org/jmeter/

Mas o vraptor… é praticamente o Spring MVC, com alguns tunes, nao?!

Não, o vRaptor não é nada do Spring MVC. O Next é, né? :lol:

Criado 12 de abril de 2010
Ultima resposta 26 de abr. de 2010
Respostas 23
Participantes 10