O que é load balancer?
Um load balancer (ou balanceador de carga) é um sistema responsável por distribuir requisições de clientes entre múltiplas instâncias de um serviço. O objetivo é evitar que um único servidor fique sobrecarregado e garantir que a aplicação continue funcionando mesmo se uma instância falhar.
Ele atua como uma “porta de entrada” centralizada: todo o tráfego chega ao load balancer, que decide para qual servidor enviar, conforme critérios definidos.
Principais funções
-
Distribuição de carga:
Reparte o tráfego entre várias máquinas para evitar gargalos. -
Alta disponibilidade:
Se uma instância cair, o load balancer automaticamente envia o tráfego para outras saudáveis. -
Escalabilidade:
Permite adicionar ou remover servidores sem impactar os usuários. -
Health checks:
Testa continuamente se as instâncias estão funcionando. -
Segurança:
Pode atuar como ponto de controle, aplicando regras, TLS termination etc.
Tipos de Load Balancer
-
L4 (Camada de Transporte – TCP/UDP):
Balanceia com base em IP e porta. É mais rápido e simples. -
L7 (Camada de Aplicação – HTTP/HTTPS):
Analisa o conteúdo da requisição (ex.: URL, headers) e toma decisões mais inteligentes.
Exemplos práticos
-
AWS ELB (ALB, NLB, CLB)
-
NGINX
-
HAProxy
-
Traefik
-
LoadBalancer Service no Kubernetes
Analogia simples
Imagine uma fila de atendimento:
O load balancer é o funcionário na porta encaminhando cada pessoa para o caixa mais disponível, garantindo que o atendimento flua sem congestionamentos.