EIVUS

Noções de balanceamento de carga para web e API

Distribua tráfego entre servidores: algoritmos, health checks e sessões.

Voltar ao blog

Balanceadores de carga distribuem requisições entre servidores de backend e removem os não saudáveis. Round-robin e least-connections são comuns. Para apps stateful, use sessões sticky ou estado em store compartilhado.

Como funciona

  • Distribuição: O LB encaminha cada requisição para um dos backends (servidores de app).
  • Health checks: O LB faz probe nos backends (HTTP, TCP) e deixa de enviar tráfego para os que falharam ou estão lentos.
  • Ponto de entrada único: Clientes falam com o LB; o LB esconde quantidade e identidade dos backends.

Algoritmos

  • Round-robin: Roda pelos backends em ordem; simples e justo para cargas similares.
  • Least connections: Envia para o backend com menos conexões ativas; bom para duração variável das requisições.
  • Weighted: Atribui mais tráfego a backends mais potentes; útil quando os nós têm capacidade diferente.

Apps stateful

  • Sessões sticky: O LB envia o mesmo cliente ao mesmo backend (por cookie ou IP). Simples mas prende o cliente a um nó.
  • Estado compartilhado: Armazene sessão em Redis ou DB para qualquer backend servir qualquer usuário; melhor para escalar e failover.
  • Stateless: Melhor opção; sem sessão no servidor; escale e substitua nós livremente.

Resumo

Use um balanceador com health checks; escolha round-robin, least-connections ou weighted. Prefira apps stateless ou estado compartilhado a sessões sticky para escalabilidade e resiliência.

Clientes que confiam na gente