Estratégias de Balanceamento de Carga
Aprenda como os balanceadores de carga distribuem o tráfego entre vários servidores para permitir escalabilidade horizontal e explore algoritmos comuns de roteamento e verificações de integridade.
Estratégias de Balanceamento de Carga é uma aula grátis de System Design Basics for Backend Developers no CoddyKit. Esta é a aula 4 de 4. Você pode ler a aula completa abaixo gratuitamente — depois pratica ao vivo no navegador com um editor de código integrado e um tutor de IA 24/7. Faz parte do caminho de aprendizado de System Design Basics for Backend Developers, e seu progresso é sincronizado entre a web e o app CoddyKit. O curso de System Design Basics for Backend Developers inclui 4 aulas no total.
Partes desta aula ainda não foram traduzidas e aparecem em inglês.
Why Load Balancing?
Once you scale horizontally, you have many identical servers. But how do clients know which one to hit? A load balancer sits in front of your servers and spreads incoming requests across them.
- Prevents any single server from being overwhelmed
- Enables seamless scaling up and down
- Improves availability if one server fails
Where the Balancer Sits
A load balancer is a reverse proxy: clients connect to one address, and the balancer forwards the request to a healthy backend. The client never sees the internal topology.
This indirection is what makes adding or removing servers invisible to users.
Client --> [Load Balancer] --> Server A
--> Server B
--> Server CRound Robin
Round robin is the simplest algorithm: requests are handed to servers in rotation. Server A, then B, then C, then back to A.
It works well when all servers are equally powerful and requests cost roughly the same.
requests = ['r1','r2','r3','r4']
servers = ['A','B','C']
for i, r in enumerate(requests):
print(r, '->', servers[i % len(servers)])Least Connections
Least connections routes each new request to the server with the fewest active connections. This is smarter when request durations vary widely.
A server stuck on slow requests will not keep receiving new ones.
Weighted Algorithms
If servers have different capacity, assign weights. A server with weight 3 receives roughly three times as many requests as a server with weight 1.
- Weighted round robin
- Weighted least connections
IP Hash & Sticky Sessions
IP hash routes a given client consistently to the same server based on a hash of its IP. This creates sticky sessions, useful when a server holds in-memory session state.
Note: stickiness undermines stateless design. Prefer external session stores when possible.
def pick(ip, n):
return hash(ip) % n
print('192.168.0.5 ->', pick('192.168.0.5', 3))Health Checks
A load balancer periodically pings each backend with a health check (e.g. GET /health). Unhealthy servers are removed from rotation automatically.
This is how the system survives a server crash without manual intervention.
Layer 4 vs Layer 7
Layer 4 balancing operates on TCP/UDP, routing by IP and port — fast but blind to content. Layer 7 operates on HTTP, so it can route by URL path, headers, or cookies.
- L4: high throughput, simple
- L7: content-aware, supports path-based routing
DNS Load Balancing
At the largest scale, a single load balancer becomes a bottleneck. DNS-based balancing returns different server IPs to different clients, spreading load before traffic even reaches a balancer.
Often combined with regional balancers for global apps.
Avoiding the Single Point of Failure
The load balancer itself must not be a single point of failure. Run it in an active-passive or active-active pair, with a floating virtual IP that fails over if the primary dies.
Putting It Together
A typical scalable setup: DNS spreads clients across regions, regional L7 balancers do health-checked path routing, and least-connections distributes to a fleet of stateless app servers behind them.
Each layer removes a bottleneck and adds resilience.
Quick Check
Test your understanding of load balancing algorithms.
Recap
You learned how load balancing makes horizontal scaling practical:
- Round robin, least connections, weighted, and IP hash algorithms
- Health checks remove failed servers automatically
- Layer 4 vs Layer 7, plus DNS balancing at scale
- The balancer must itself be redundant
Aprenda System Design Basics for Backend Developers com um tutor de IA — grátis
Escreva e execute código real no seu navegador, obtenha ajuda instantânea de um tutor de IA 24/7 e continue de onde parou na web ou no app.
- Cursos
- 12
- Aulas
- 48
Perguntas Frequentes
A aula “Estratégias de Balanceamento de Carga” é grátis?
Sim — o texto completo de “Estratégias de Balanceamento de Carga” é grátis para ler aqui na web. Para praticá-la interativamente (um editor de código integrado e um tutor de IA 24/7) e desbloquear o restante do curso de System Design Basics for Backend Developers, atualize para CoddyKit PRO. O curso de System Design Basics for Backend Developers inclui 4 aulas no total.
O que vou aprender em “Estratégias de Balanceamento de Carga”?
Aprenda como os balanceadores de carga distribuem o tráfego entre vários servidores para permitir escalabilidade horizontal e explore algoritmos comuns de roteamento e verificações de integridade. Você pratica System Design Basics for Backend Developers com código prático que executa diretamente no navegador, e um tutor de IA 24/7 responde suas dúvidas enquanto trabalha na aula.
Preciso ter experiência prévia para começar System Design Basics for Backend Developers?
Nenhuma experiência prévia é necessária. System Design Basics for Backend Developers no CoddyKit é estruturado para alunos iniciantes até avançados, então você pode começar aqui ou desde o início e aprender no seu ritmo. Esta é a aula 4 de 4.
Quanto tempo leva a aula “Estratégias de Balanceamento de Carga”?
A maioria das aulas CoddyKit leva cerca de 5–10 minutos. Cada uma é compacta e interativa, então você faz progresso constante e retoma exatamente de onde parou entre web e app.
Posso escrever e executar código nesta aula de System Design Basics for Backend Developers?
Sim. Cada aula de System Design Basics for Backend Developers inclui um editor de código integrado, então você escreve e executa código real direto no navegador e recebe feedback de IA instantaneamente — nenhuma configuração local necessária.
Todas as aulas deste curso
- Dimensionamento vertical versus horizontal
- Serviços sem estado versus com estado
- Introdução a sistemas distribuídos
- Estratégias de Balanceamento de Carga