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.




