Tomcat - Spring Framework - MySQL, design de balanceamento de carga

5

Digamos que eu tenha o Spring Framework App em execução no Tomcat e use o banco de dados MySQL:

Qual seria a melhor solução neste caso que permitiria a sociabilidade (preço / desempenho / tempo de integração)?

Mais precisamente: O que estaria na caixa do balanceador de carga da Web e quem deveria ser o servidor da web do tomcat em cluster? O que estaria na caixa do balanceador de carga do banco de dados e como os servidores de banco de dados deveriam ser agrupados? E, se possível, os links específicos de integração técnica seriam de grande ajuda.

    
por Mat B 11.11.2011 / 19:56

3 respostas

4
  1. Para balanceamento de carga da web, existem várias soluções, opensource e pagas, eu pessoalmente usei balanceadores de carga cisco (CSM e ACE) e F5 e gosto deles (mas essas soluções podem ficar caras). Existem vários para opensource, um que vem à mente é o link

  2. Para o balanceamento de carga do mysql, você pode examinar o mestre para dominar a replicação para o msyql. Veja: link . O que eu fiz no passado para um projeto, eu tinha 3 servidores web serverfarm atrás de grande IP (F5) e todos eles conversaram com um servidor mysql. E eu tinha exatamente a mesma configuração em um site diferente, e os dois servidores mysql tinham master para dominar a replicação. Assim, os usuários usariam todos os servidores da web e servidores de banco de dados e, se um dos servidores de banco de dados, fosse desativado, o Web farm nesse site seria desativado e os usuários só usariam o outro site. (Failover e monitoramento de DNS para monitoramento e failover de vários sites). Você pode usar o balanceador de carga global se tiver o orçamento para ficar mais granular.

por 16.11.2011 / 16:54
3

O MySQL simples não possui uma opção de balanceamento de carga, mas o MySQL Cluster faz.

Eu recomendaria usar o MySQL Cluster para suas múltiplas instâncias do MySQL.

Então você pode usar o MySQL Connector / J com URLs JDBC de balanceamento de carga transparentes. Consulte o link

PS: Eu votei para mover esta questão para ServerFault.com.

    
por 11.11.2011 / 20:13
1

Eu não recomendaria usar o MySQL Cluster. Eu nunca vi isso funcionar bem e não bater muito. Havent usou isso em um tempo embora (uma vez que não funcionava realmente um ano ou mais atrás).

Basta usar um mestre com escravos. Faça todas as suas operações de leitura nos escravos (a menos que você precise ler suas próprias gravações ou dados atuais para o ms). Se isso não escala o suficiente para você (você tem muitas gravações). É hora de olhar para sharding.

Outra opção, se seu aplicativo permitir (ou puder ser transformado em permitir

    
por 13.11.2011 / 09:19