Qual a melhor arquitetura?

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…

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?

Eu diria que seria algo parecido com um guia…

Ex: Guia de Moteis…

é algo bem semelhantes a isto

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

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

É 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…

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

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?

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

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

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?

usa um projeto chamado jmeter

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

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

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

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

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

foi so um exemplo

obrigado

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

[quote=rodrigo.lopes]Eu diria que seria algo parecido com um guia…

Ex: Guia de Moteis…

é algo bem semelhantes a isto[/quote]

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 arquitetura do Twitter está aqui: http://highscalability.com/blog/2009/6/27/scaling-twitter-making-twitter-10000-percent-faster.html

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.

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