Livro / Recursos sobre como configurar o balanceamento de carga e failover de aplicativo baseado na web Servlet Java [fechado]

StackOverflow https://stackoverflow.com/questions/276623

Pergunta

Estamos criando um sistema web usando Java e tecnologia Servlet (na verdade Wicket para a camada de apresentação) e precisamos de nosso sistema para estar disponível quase sempre como nossos clientes será bastante dependente dele.

Isto levou-nos a olhar para um bom livro enfocando o assunto ou outro recurso que explica como configurar a mais redundante e deixar arquitetura segura para o nosso sistema.

A lista não exclusiva de perguntas que temos no momento:

  • Como você tem um nome de domínio (como http://www.google.com ), que são na verdade, servido por vários servidores com balanceamento de carga para distribuir os usuários? Não há sempre um ponto que é mais fraco na solução de tal (os dois [como não pode haver mais] servidores DNS para google.com em seu caso)?
  • Parece uma boa idéia ter vários servidores de banco de dados para redundância e balanceamento de carga. Como é que configurar?
  • Se um dos nossos servidores web vai para baixo nós gostaríamos de ter algum tipo de failover e permitir que os usuários usar um que ainda está para cima. Entre outras coisas, as sessões têm de ser sincronizadas de alguma forma. Como é que configurar?
  • Será que precisamos de algum tipo de transações sincronizadas também?
  • uma boa opção para nós Amazon Computer Cloud é? Como podemos defini-lo lá em cima? Existem alternativas que são rentáveis?
  • Será que precisamos para ser executado em um recipiente de Java EE como JBoss ou Glassfish?
Foi útil?

Solução

Em relação GlassFish, administração centralizada através do GUI de administração é uma grande ajuda para ambientes com mais de uma instância appserver para gerenciar. "Sempre disponível" está sobrecarregado. Pode ser a disponibilidade do serviço sem retenção de sessão em caso de falha, ou pode significar a disponibilidade de dados com informações de sessão backup. Claro, GlassFish pode fazer as duas coisas. Um casal de recursos que podem ser de ajuda em relação GlassFish e alta disponibilidade:

Guide to GlassFish High Availability: http://www.sun.com/offers/details/glassfish_HAref_config.html

Criação de um GlassFish Cluster em 10 minutos: http://blogs.oracle.com/jclingan/entry/glassfish_clustering_in_under_10

John Clingan, GlassFish Grupo Gerente de Produto

Outras dicas

O Liferay wiki tem um guia de alta disponibilidade entrada delineando uma arquitetura que poderia servir como um ponto de partida.

Esta é provavelmente uma abordagem simplista, mas eu tenho implementado um tipo semelhante de solução de alta disponibilidade recentemente balanceamento de carga e.
Meu aplicativo teve Tomcat como o container web e banco de dados MySQL. Eu fachada Tomcat com o Apache HTTP Server e utilizar o módulo mod_jk2 Apache como a interface para balanceamento de carga pega e failover.

Muitos recursos estão disponíveis na web a partir da documentação do Apache. Aqui estão alguns:

http://tomcat.apache.org/connectors-doc/reference /workers.html

http: //www.redhat .com / docs / manuais / rhaps / jonas-guia / S1-load-balancing.html

http://tomcat.apache.org/connectors-doc/webserver_howto /apache.html

Para o MySQL, veja a procuração MySQL para balanceamento de carga e failover. Sua ideia de um bom ter servidores mais do que um banco de dados para balanceamento de carga e failover. um conjunto de bancos de dados pode ser para leituras e o outro conjunto para gravações. Dependendo do volume, você pode querer alocar mais / menos servidores para leitura / escreve. A documentação de banco de dados também pode ajudá-lo na configuração.

HTH.

Um amigo meu diz que construção Scalable Web Sites é a definitiva livro sobre o assunto:

Scalable Internet Architectures por Theo Schlossnagle pode também ser de interesse.

I leitura apenas acabado arquitetar Enterprise Solutions: Padrões para sistemas baseados em Internet de alta Capability . Excelente introdução para mim em escalabilidade, disponibilidade, desempenho, segurança e toda uma série de outros aspectos para Enterprise Systems

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top