Pergunta

Quais são as ferramentas para alcançar alta disponibilidade para o Java web application.

Foi útil?

Solução

A principal abordagem a ser usada não é uma ferramenta. É chamado de "software de qualidade" - ou seja, você deve lidar com todos os seus recursos (incluindo sincronização) adequadamente.

Apache Hadoop é algo que você pode usar para distribuir e escalar seu sistema. Mas isso é para enorme formulários.

Balanceamento de carga é algo para analisar também.

Outras dicas

Talvez você esteja procurando uma solução de agrupamento? Há a versão OpenSource do cluster da JVM de Terracotta

Eliminando pontos únicos de falha através da redundância em todos os níveis do aplicativo. Você pode fazer perguntas a si mesmo na linha de "O que acontece se X falhar" e encontrar maneiras de mitigar esse risco.

Existem pelo menos dois aspectos principais que você terá que enfrentar:

  1. Operacional
  2. Arquitetura, design, código

Cada um desses elementos são grandes questões. Por exemplo, existem alguns sites bons dedicados a eles (consulte Serverfault.com e Stackoverflow.com, respectivamente).

As considerações operacionais incluem: Escalando implantações, incluindo balanceamento de carga, recuperação de desastres, um CDN, se possível e monitoramento. As considerações de implantação em andamento também são importantes.

Arquitetura -> Considerações sobre o código são numerosas e significativas. Desde a arquitetura da sua solução, até o layout do seu código para manutenção e o mais difícil de obter: correção. Minha melhor sugestão: contrate alguém com experiência. Naquela falha, leia livros e similares de alguém com experiência.

Além disso, no mundo Java, é muito importante chegar a um acordo com esse fato importante: provavelmente já foi escrito antes. Esta é uma grande notícia! Tantas pessoas muito brilhantes passaram inúmeras horas escrevendo código para voce e o disponibilizou livremente em lugares como [Jacarta] Apache, Google Code, Codehaus, Sourceforge e vários outros sites de código aberto. Quanto mais pesquisas você faz em sua pergunta, mais você encontrará esses jogadores aparecendo. Uma habilidade importante é determinar qual software disponível é um bom ajuste para você.

As pessoas contribuíram com outras respostas com tecnologias específicas de escolha, muitas das quais são boas sugestões, mas tudo se resume ao problema real que você está tentando resolver, e só você sabe o que é isso (bem, a pergunta não diz nós Enfim: d).

Para começar, você vai precisar de:

  1. Um aplicativo da web que pode ser executado em vários servidores da web simultaneamente.
  2. Um balanceamento de carga de front-end que pode detectar a falha de servidores da web e rotear o tráfego para outras viver instâncias.Esta parte não precisa ser em Java.Você precisa encontrar o ponto de integração entre o balanceador de carga e web-app recipiente.

Depois de ter a configuração inicial acontecendo, você terá que encontrar outros prováveis pontos de falha, como servidores de banco de dados, o servidor de balanceamento de carga em si, servidor DNS, etc.e, em seguida, tente adicionar redundância e failover de comutação estas camadas também.

Você também deve considerar as soluções de hardware tais como RAID, SAN, etc.

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