Balanceador de carga http de software?

19

No momento, só temos um servidor de back-end por site / serviço da web. Eu estaria interessado em ouvir as experiências das pessoas com vários aplicativos de balanceador de carga (algo que roda no Linux).

O que você recomendaria?

Mark Renouf
fonte

Respostas:

13

De acordo com o episódio 27 do podcast StackOverflow , os caras do Reddit realmente parecem gostar do HAProxy . Aqui está um breve tutorial mostrando o HAProxy sendo usado com o EC2 da Amazon . Você pode encontrar muito mais informações no site do HAProxy .

John Siracusa
fonte
3
Eu uso o HAProxy em vários servidores de produção e adoro isso. É fácil de configurar e possui uma interface web simples para verificar seu status e estatísticas em tempo real. Um screencast que me ajudou a configurar minha primeira instância do HAProxz pode ser encontrado no [Blog Signal versus Noise] [1] [1]: 37signals.com/svn/posts/1073-nuts-bolts-haproxy
Wes Oldenbeuving
Eu esqueci o aspecto de gerenciamento. Isso parece muito bom.
Mark Renouf
21

A pergunta não fornece informações específicas sobre carga, recursos necessários, etc., portanto, qualquer resposta é, na melhor das hipóteses, um palpite.

A libra é uma boa opção para sites menores / médios. Oferece suporte a HTTPS e fácil configuração.

O HAproxy pode ser dimensionado para saturar pipes Ethernet 10G e oferece limitação de conexão, ou seja, enviando apenas o número de solicitações simultâneas a cada servidor de back-end, pois você deve lidar com instâncias Apache children / Ruby on Rails.

O nginx é excelente como um balanceador de carga geral e um servidor de arquivos estático. Ele pode executar compactação HTTP, reescrita de URL e veiculação de arquivo estático enquanto faz o balanceamento de carga.

O Apache também é um bom balanceador de carga na série 2.2. Pode fazer o mesmo que o nginx, mas coloca uma carga maior no servidor que o nginx. Vale muito a pena investigar se você já conhece o Apache e é muito maduro.

O Perlbal oferece fácil conexão limitando a hosts de back-end, solicitações multiplexadas através de conexões HTTP persistentes e fácil configuração se você já estiver usando o Perl.

O cache de verniz é um proxy HTTP reverso, com suporte básico ao balanceamento de carga. Não é um ótimo balanceador de carga, mas, em algumas situações, o armazenamento em cache na memória da maioria dos objetos solicitados pode remover uma alta porcentagem de ocorrências do servidor de back-end e possui ótimo desempenho. Inclui ESI são potencialmente interessantes.

Não tenho 100% de certeza, mas, de cabeça para baixo, Perlbal e nginx oferecem algum suporte para alterar a configuração sem reiniciar o balanceador de carga. Para sites maiores, isso é crítico e é uma das coisas que os bons dispositivos comerciais de balanceador de carga fazem bem.

Todos os itens acima são balanceadores de carga no nível HTTP (camada 7). Os balanceadores de carga no nível TCP / IP têm o potencial de atingir maior taxa de transferência, mas são limitados de outras maneiras. O autor do HAProxy escreveu uma visão geral boa e legível dos métodos e problemas de balanceamento de carga: http://1wt.eu/articles/2006_lb/

O LVS é um balanceador de carga no nível TCP / IP amplamente utilizado. A maioria dos firewalls também pode fazer o balanceamento de carga básico no nível do IP, agrupando a solicitação recebida em vários endereços IP de back-end - pelo menos o PF do OpenBSD e o Cisco ASA e Juniper Netscreens podem fazer isso.

Jesper M
fonte
3

O haproxy funciona bem como o LVS.

No FWIW, o wordpress.com usa o nginx como seu balanceador / proxy.

Jauder Ho
fonte
2

Usamos LVS na produção. É gerenciado por nossa equipe de operações com um conjunto de scripts complexos e ruins. Um sistema sob medida bastante inteligente anuncia dados de integridade e desempenho de nossos servidores reais para permitir que o balanceador de carga defina pesos de acordo.

É claro que o LVS fornece um único ponto de falha - o balanceador de carga (existem maneiras de configurá-los de forma redundante).

Eu pensei que isso era muito complicado de configurar, então escrevi o Fluffy Linux Cluster, que se baseava pouco no funcionamento do Windows NLB (acho ... não tenho certeza de como isso funciona) e também foi inspirado pelo CLUSTERIP.

Nós não o usamos na produção, mas o Fluffy pode balancear a carga de um número razoável (5 pelo menos) de servidores sem um único ponto de falha e nenhum nó de gerenciamento central etc.

MarkR
fonte
Hmm: LVS, scripts ruins, sistemas sob medida bastante inteligentes. Sua configuração é exatamente igual à nossa!
Tom Anderson
2

Eu usei Pound no passado. É rápido, simples e requer atenção mínima.

mryan1
fonte
1

Sou um grande fã dos LBs multi-camada ZXTM da Zeus - clique AQUI

Chopper3
fonte
1

Se você optar por usar o LVS, também analisarei o Keepalived se você deseja tornar sua camada de servidor de balanceamento de carga altamente disponível. Eu estava usando o Heartbeat / Pacemaker com LVS há vários meses e achei muito complicado e às vezes instável para uma camada simples de HA LB.

Aaron Bush
fonte