Estou analisando várias opções possíveis para balanceamento de carga.
Até agora, estou limitado às seguintes opções:
Balanceador de carga do servidor DNS, balanceado para um cluster de servidores tomcat, com terracota para replicação de sessão. Prós - não precisa comprar um novo kit. Contras - O DNS lb pode continuar direcionando para um servidor quebrado.
Balanceador de carga de hardware, direto ao cluster de servidores tomcat. Prós - poderia ter uma segunda caixa para lb de failover. Contras - despesas.
Balanceador de carga do servidor Apache. Prós - pesquisas lb do apache para servidores quebrados. Contras - o servidor apache é um ponto único de falha, além da necessidade de comprar outro servidor.
Existem outras opções que devo considerar?
Obrigado.
Atualização: Obrigado por todas as respostas até agora + 1s em todos os aspectos. Não aceitando uma resposta ainda, para manter mais idéias chegando.
fonte
Respostas:
eu não iria para lb com base em DNS - exatamente pelo motivo que você lista.
O nginx ou o verniz pode ser sua outra opção de lb / failover que fica na frente do appservs e atua como proxy reverso. eles exigem mais cuidado do que a caixa de hardware, mas economizarão muito dinheiro. certifique-se de colocar esses balanceadores em algum cluster também [ativo-passivo com pulsação fará o truque].
fonte
Se você estiver analisando dispositivos de balanceamento de carga, não poderá errar com o F5 Big-IP
edit: A razão pela qual digo que basta ir com o Big-IP é porque é um bom dispositivo para administradores de servidores que não têm muita experiência com dispositivos de rede. Possui uma interface web agradável, com opções quase ilimitadas para configuração e geração de relatórios. Elas são as mais confiáveis e menos caras de todas as opções de balanceamento de carga "corporativas".
Aqui está um link para um estudo sobre as opções de entrega de aplicativos em 2007: Resultados do Gartner
fonte
Eu sugiro usar o HAProxy . É extremamente rápido. E você também pode evitar um único ponto de falha usando dois balanceadores de carga com CARP (* BSD) ou UCARP / LVS (Linux)
fonte
Estamos usando o Equalizador de Pontos Coyote (balanceadores de carga de hardware) há anos e estamos muito felizes com eles. Eles podem não ter todos os recursos de um F5, mas ainda têm muitos recursos e custam muito menos. Desempenho e confiabilidade foram excelentes.
fonte
Eu costumo optar por LBs de hardware, pois eles costumam lidar com muito tráfego, são frequentemente mais simples, mais capazes de serem melhorados / mais fáceis e às vezes também podem gerenciar outros problemas de segurança, como ataques de SYN-flood no hardware. Eu uso o Foundry, mas há muitas opções de escolha (F5, Cisco etc.) - porém dispendiosas :(
fonte
O Cisco GSS (Global Site Selector) é um servidor DNS que também faz verificações de saúde. Essa será uma opção mais cara que um servidor DNS padrão, obviamente. Página da Web com mais detalhes aqui: http://www.cisco.com/en/US/products/hw/contnetw/ps4162/index.html
Como o Chopper3 mencionou, o balanceamento de carga baseado em hardware provavelmente oferecerá maior desempenho, mas você pagará por isso.
Os recursos que você pode procurar são: descarregamento de SSL, suporte a vlan, contextos, clustering, suporte a protocolos de roteamento e suporte / interação com diferentes aplicativos (por exemplo, cookies html e modificação de cabeçalho).
fonte
Você já viu o ldirectord ?
É executado no linux, pode funcionar com pulsação do coração nas mesmas máquinas em que é feito o balanceamento de carga (e, portanto, possui alguma redundância incorporada) - ou, é claro, em sua própria caixa na frente deles, é fácil de configurar, leve e muito capaz .
fonte
Eu descobri que o cruzamento era um excelente balanceador de carga. Ele lidou com nossa carga de produção por uns bons sete meses, enquanto os funcionários da rede resolviam um problema de hardware com um balanceador de carga da Cisco.
fonte
Eu escrevi um balanceador de carga baseado em software que não requer uma máquina separada.
O lado negativo é que ele não está realmente pronto para produção - mas se você quiser testá-lo em sua rede de testes, ficaria satisfeito.
O cluster fofo está aqui
É basicamente superficialmente semelhante ao NLB da Microsoft (eu acho) - embora eu não tenha sua fonte e não saiba exatamente como a deles funciona.
É claro que não monitoramos automaticamente a camada do aplicativo, mas você pode escrever algo que faça isso e alterar pesos ou remover nós de acordo.
EDIT: Você não disse qual SO, o cluster Fluffy é apenas para Linux no momento.
fonte
keepalived é outro balanceador de carga linux, que suporta vários algoritmos de balanceamento de carga (obviamente) e VRRP para criar instâncias redundantes com failover automático quando uma caixa do balanceador de carga fica inativa
fonte
Se o dinheiro não for uma preocupação, obtenha um balanceador de carga de hardware.
A empresa em que trabalho usa o Apache para fazer frente aos nossos servidores Tomcat e o balanceador de carga está na mesma caixa que alguns dos tomcats (os tomcats usam portas internas). Iremos para uma caixa dedicada do balanceador de carga em breve. Em breve, mudaremos para o Nginx, acho a configuração mais fácil e tudo muito mais leve que o Apache. Dependendo da arquitetura da rede, também aconselho que você use um "IP flutuante" interno para o balanceador de carga e execute algo como pulsação para alternar o IP para outra caixa, se necessário. Isso adicionaria capacidade de failover sem se preocupar com problemas de propagação de DNS.
fonte
Eu configurei uma solução com DNSMadeEasy . Eles têm um ótimo screencast em relação ao failover de DNS. Eles têm preços razoáveis. Em nosso sistema, implementamos um serviço simples que "envia" os diferentes componentes de nosso sistema (banco de dados, fila JMS, conexão S3) e retorna OK, que o DNSMadeEasy pode utilizar. Sempre que houver uma exceção, o DNSMadeEasy removerá esse servidor da lista de servidores que responde nessa pesquisa de DNS.
fonte
Você já olhou perlbal?
www.danga.com/perlbal/
fonte
Olá, @toolkit, você implementou o NGinX / Varnish na sua missão LoadBalancer (LB)? Em caso afirmativo, quais foram seus resultados? (se você não se importa de compartilhar com o resto de nós ;-)
Apenas para resumir o exposto acima (e faça uma menção ao ZMQ)
Balanceamento de carga básico
Mais avancado
fonte