recomendação de hardware para a aplicação web do tomcat [fechada]

2

Estamos executando um aplicativo da Web em nosso sistema de teste (CentOS) como este - um servidor Web (apache), duas instâncias do tomcat executando o mesmo aplicativo da Web, um banco de dados PostgreSQL - cada um em quatro servidores virtuais. O aplicativo é usado para milhares de usuários e também requer alguns armazenamentos de dados confidenciais do usuário. Estamos planejando mudar isso para um sistema de produção e buscando alguns conselhos sobre como escolher o hardware certo para essa funcionalidade. Estou bastante aberto a sugestões (VM ou dedicadas ou mistas) que tenham um bom custo-benefício e sejam adequadas ao melhor nesse ambiente. Eu acho que estou procurando é instant failover . Alguém pode me sugerir uma especificação e qualquer equipamento extra pode ser necessário para executar esses serviços?

Algumas coisas na minha mente: Para o servidor de banco de dados, estou pensando em um servidor dedicado - RAID 1 espelhado para o disco do sistema e RAID10 para o banco de dados (armazenamento local). Ou devemos ir para algum armazenamento compartilhado com o FC? Discos mais rápidos para o tomcat (que é o gargalo - não é?), DNS Round-Robin para failover do servidor Web e GbE dedicado por caixa para largura de banda de E / S na rede. Mas estou bastante interessado em ver como os outros projetam seu sistema (CPU, RAM, H / w extra, processo, etc.) mantendo esses requisitos em mente. Qualquer entrada bem-vinda e muito apreciada. Desde já, obrigado. Felicidades!!

    
por La Scavenger 28.05.2011 / 22:25

1 resposta

0

No lado do httpd / tomcat, a maneira como fazemos isso é:

em um único servidor, execute um httpd e duas instâncias do tomcat em portas diferentes. Usamos mod_jk para conversar com os tomcats sobre ajp e configurar o mod_jk para carregar o equilíbrio entre os dois (ou, em alguns casos, um failover ativo / passivo e deixar o mod_jk descobrir quando fazer o failover).

Executamos várias instâncias do servidor acima, com um balanceador de carga de hardware real na frente que fala com todos os httpds. Para lidar com o único ponto de falha do balanceador de carga de hardware, replicamos essa configuração inteira em um datacenter diferente e, em seguida, usamos jogos DNS para balancear as pessoas geograficamente usando o Dynect (que também tem a capacidade de transferir a carga para outro datacenter durante a falha).

Parte do motivo pelo qual executamos duas instâncias do tomcat em cada servidor é para que possamos aplicar mais facilmente as atualizações de software a um aplicativo sem afetar nossa capacidade de lidar com o pico de carga. Sim, isso nos faz ter 2x o requisito de RAM, mas isso é muito mais barato do que ter que dobrar o número de sistemas para operar da maneira que operamos.

Na sua configuração, você está lidando com o caso de um único servidor tomcat morrendo, mas não o httpd de front end. Talvez seja melhor criar um par de servidores httpd front-end que usam heartbeat / corosync / pacemaker para lidar com o failover front-end. Não será "failover instantâneo", mas estará próximo disso. A maioria das pessoas pode tolerar alguns segundos enquanto as coisas mudam.

    
por 10.06.2011 / 22:54