Saltar para o conteúdo
BeoHosting
BeoHosting
Técnico

O Que É Load Balancing e Como Funciona

BeoHosting Team··9 min de leitura de leitura
O Que É Load Balancing e Como Funciona

O que é o load balancing

O load balancing é uma técnica para distribuir tráfego de rede. Isto é particularmente relevante para utilizadores de servidores dedicados. É a distribuição de tráfego entre vários servidores para garantir alta disponibilidade, fiabilidade e desempenho ótimo das aplicações. Imagine um load balancer como um agente de trânsito que está à frente de um grupo de servidores e direciona cada pedido recebido para o servidor que está menos sobrecarregado naquele momento. Sem um load balancer, um único servidor tem de lidar com todo o tráfego e, quando atinge a sua capacidade, o site fica lento ou completamente indisponível. Com um load balancer, a carga é distribuída de forma uniforme e, se um servidor falhar, os outros assumem o seu trabalho sem interrupção para os utilizadores.

O load balancing é a base da infraestrutura web moderna. Todas as grandes plataformas web — Google, Facebook, Amazon, Netflix — usam sistemas sofisticados de load balancing. Mas o load balancing não está reservado apenas aos gigantes — qualquer site com tráfego crescente ou um requisito de alta disponibilidade pode beneficiar desta tecnologia. Com a ascensão do cloud hosting, o load balancing tornou-se acessível às pequenas e médias empresas a preços razoáveis.

Tipos de load balancers

Load balancing de Camada 4

Um load balancer de Camada 4 (L4) opera na camada de transporte do modelo OSI e toma decisões de encaminhamento com base em endereços IP e portas, sem analisar o conteúdo do tráfego. Quando chega um pedido, o balanceador L4 redireciona toda a ligação TCP ou UDP para um servidor de backend selecionado. As vantagens dos balanceadores L4 são a velocidade excecional, por não analisarem o conteúdo dos pacotes, menores requisitos de recursos, e a capacidade de balancear qualquer tipo de tráfego — não apenas HTTP. É usado em cenários em que a simples distribuição de tráfego é suficiente, sem necessidade de encaminhamento inteligente com base em URL ou cabeçalhos.

Load balancing de Camada 7

Um load balancer de Camada 7 (L7) opera na camada de aplicação e compreende o protocolo HTTP. Isto permite-lhe encaminhar de forma inteligente com base no URL, cabeçalhos HTTP, cookies, tipo de conteúdo e outros atributos do pedido. Por exemplo, o balanceador L7 pode encaminhar pedidos de imagens para servidores otimizados para conteúdo estático, pedidos de API para servidores de aplicação, e ligações websocket para servidores configurados para ligações de longa duração. Os balanceadores L7 também podem fazer SSL termination (desencriptar HTTPS no balanceador), compressão de conteúdo e caching. A maioria das aplicações web modernas usa load balancing L7.

Global server load balancing

O GSLB (Global Server Load Balancing) distribui tráfego entre servidores em diferentes localizações geográficas. Usa DNS para encaminhar os utilizadores para o data center mais próximo com base na localização geográfica, na latência ou na saúde do servidor. Por exemplo, os utilizadores de Portugal são encaminhados para o data center europeu, enquanto os utilizadores dos EUA vão para o americano. O GSLB é fundamental para aplicações globais que exigem baixa latência em todo o mundo e proporciona disaster recovery — se um data center inteiro ficar indisponível, o tráfego é automaticamente redirecionado para outro.

Algoritmos de distribuição de tráfego

Round Robin

O Round Robin é o algoritmo mais simples, distribuindo os pedidos sequencialmente, por ordem, pelos servidores disponíveis. O primeiro pedido vai para o servidor 1, o segundo para o servidor 2, o terceiro para o servidor 3, depois volta ao servidor 1, e assim sucessivamente. A vantagem é a simplicidade absoluta de implementação e a previsibilidade da distribuição. A desvantagem é que não tem em conta a carga atual dos servidores — um servidor que processa uma operação pesada recebe o mesmo número de novos pedidos que um servidor que está inativo. A variante Weighted Round Robin atribui pesos diferentes aos servidores, proporcionais às suas capacidades, de modo que os servidores mais potentes recebem mais pedidos.

Least Connections

O algoritmo Least Connections encaminha cada novo pedido para o servidor que tem atualmente o menor número de ligações ativas. Este é mais inteligente do que o Round Robin, porque tem em conta a carga real. Se um servidor processa pedidos de longa duração enquanto outro termina rapidamente pedidos curtos, o Least Connections encaminha mais pedidos para o servidor mais rápido. O Weighted Least Connections combina esta abordagem com coeficientes de peso para servidores de diferente capacidade. Este algoritmo é ideal para aplicações com pedidos que variam na duração.

IP Hash

O algoritmo IP Hash calcula um valor de hash a partir do endereço IP do cliente e usa-o para determinar o servidor. Isto garante que os pedidos do mesmo cliente vão sempre para o mesmo servidor, o que é importante para aplicações que armazenam a sessão no servidor (session persistence). Sem o IP Hash ou um mecanismo semelhante, um utilizador pode ser transferido para outro servidor que não tem a sua sessão, o que resulta na perda do carrinho de compras ou em ter de iniciar sessão novamente. A alternativa moderna é usar armazenamento de sessão centralizado com Redis, eliminando a necessidade de session persistence ao nível do load balancer.

Least Response Time

Este algoritmo combina o menor número de ligações com o menor tempo de resposta. O pedido é encaminhado para o servidor com o menor número de ligações ativas e o tempo médio de resposta mais rápido. Esta é a abordagem mais inteligente, porque considera tanto a carga como o desempenho de cada servidor. Se um servidor tiver discos mais rápidos ou mais RAM, terá naturalmente tempos de resposta mais curtos e receberá proporcionalmente mais pedidos. Requer a monitorização das respostas de cada servidor, o que acrescenta uma pequena sobrecarga, mas produz resultados ótimos.

Load balancers de hardware vs software

Load balancers de hardware

Os load balancers de hardware são aparelhos especializados concebidos exclusivamente para a distribuição de tráfego. Fornecedores como a F5 Networks (BIG-IP), a Citrix (NetScaler) e a A10 Networks oferecem aparelhos capazes de lidar com milhões de ligações por segundo com latência extremamente baixa. As vantagens são o desempenho previsível, o hardware dedicado e funcionalidades avançadas como SSL offloading, proteção DDoS e uma firewall de aplicação. A desvantagem é o custo elevado — os load balancers de hardware custam desde alguns milhares até centenas de milhares de euros, além dos custos de manutenção e licenciamento.

Load balancers de software

Os load balancers de software instalam-se em servidores padrão e oferecem flexibilidade, custos mais baixos e facilidade de escalabilidade. As soluções open-source mais populares são o Nginx, que é simultaneamente um servidor web e um load balancer com excelente desempenho, o HAProxy, especializado em load balancing com fiabilidade excecional e baixa latência, e o Traefik, um load balancer moderno concebido para ambientes em contentores como o Docker e o Kubernetes. Os fornecedores de cloud oferecem load balancers geridos como serviço, eliminando a necessidade de gerir a infraestrutura.

Load balancers de cloud

O AWS Elastic Load Balancer, o Google Cloud Load Balancing e o Azure Load Balancer são serviços geridos que oferecem load balancing sem gerir hardware ou software. Escalam automaticamente com o seu tráfego, integram-se com outros serviços de cloud, e paga apenas pelo que usa. Para a maioria das aplicações modernas, os load balancers de cloud são uma escolha ótima, porque eliminam a complexidade operacional, oferecem alta disponibilidade com redundância integrada, e exigem uma configuração mínima para começar.

Quando precisa de um load balancer

Cenários de utilização

Precisa de um load balancer quando um único servidor não consegue lidar com o seu tráfego e o site fica lento durante os picos, quando precisa de alta disponibilidade e não pode permitir-se tempo de inatividade, quando tem uma aplicação crítica como uma loja de e-commerce em que cada minuto de inatividade significa receita perdida, quando quer a possibilidade de atualizar servidores sem interrupção do serviço usando rolling deployment, ou quando o seu tráfego varia significativamente e precisa de escalabilidade dinâmica.

Quando não é preciso um load balancer

Para um site pequeno com tráfego moderado, um load balancer traz complexidade e custos desnecessários. Se o seu site recebe menos de 10.000 visitantes por dia, um único servidor bem otimizado com caching é totalmente suficiente. Antes de adicionar um load balancer, otimize o servidor existente — implemente page caching, otimize a base de dados, use uma CDN para os ficheiros estáticos e comprima as imagens. Estas otimizações eliminam muitas vezes a necessidade de um load balancer e são muito mais económicas.

Health checks e failover

  • Health checks ativos: O load balancer envia periodicamente pedidos aos servidores de backend para verificar se estão vivos e funcionais — normalmente um HTTP GET para um endpoint específico.
  • Health checks passivos: O load balancer acompanha as respostas dos servidores durante o tráfego normal e deteta erros sem pedidos especiais.
  • Failover automático: Quando um servidor falha no health check, é automaticamente removido da rotação e o tráfego é redirecionado para os servidores restantes.
  • Recuperação graciosa: Quando um servidor volta a ficar saudável, é gradualmente reintroduzido na rotação com menos pedidos, para evitar uma carga súbita.
  • Health checks personalizados: Para além da verificação HTTP básica, configure verificações específicas para a sua aplicação — estado da base de dados, disponibilidade de APIs externas e espaço livre em disco.

Conclusão

O load balancing é uma técnica fundamental para construir aplicações web fiáveis e escaláveis. Desde o simples algoritmo Round Robin até aos sofisticados balanceadores L7 com encaminhamento inteligente, existe uma solução para cada orçamento e necessidade. Os load balancers de software como o Nginx e o HAProxy democratizaram esta tecnologia, tornando-a acessível a todos. Na BeoHosting oferecemos cloud hosting com capacidade de load balancing para sites que exigem alta disponibilidade, e a nossa equipa pode ajudar a configurar a infraestrutura ótima para as suas necessidades específicas.

BeoHosting Team

10+ anos de experiência — Especialistas em alojamento web e infraestrutura

  • Web Hosting
  • WordPress Hosting
  • VPS
  • Dedicated Serveri
  • Domeni
  • SSL
  • cPanel
  • LiteSpeed
  • Linux administracija
  • DNS

Última atualização: