Skip to content
Latchkey

O Que É um Network Load Balancer? Distribuindo Tráfego Entre Servidores

Um network load balancer é o componente que espalha as conexões de entrada por um pool de servidores backend, para que nenhuma instância isolada seja sobrecarregada e o serviço sobreviva a falhas de instância.

Um único servidor não consegue lidar com todo o tráfego nem sobreviver à sua própria falha, então serviços de produção ficam atrás de um load balancer. Ele aceita conexões em um endereço e as distribui por muitos backends, verificando a saúde deles e roteando apenas para os que estão prontos. Os deploys se apoiam nisso para publicar novas versões sem downtime.

Distribuindo conexões

O load balancer recebe tráfego em um endereço estável e encaminha cada conexão ou requisição para um backend saudável, usando estratégias como round-robin ou least-connections para equilibrar a carga de forma uniforme.

Health checks decidem o roteamento

Um load balancer sonda continuamente um endpoint de health-check em cada backend e só envia tráfego para os que respondem saudáveis. Uma instância que falha em seu check é discretamente removida da rotação.

Camadas de balanceamento

  • A Layer 4 balanceia por conexão TCP/UDP, sem enxergar o conteúdo.
  • A Layer 7 balanceia por detalhes do HTTP como path e host.
  • Ambas podem terminar ou repassar o TLS.

Viabilizando deploys sem downtime

Deploys rolling e blue-green adicionam novas instâncias atrás do balancer, esperam que passem nos health checks, desviam o tráfego e então drenam as antigas. O load balancer é o que torna isso transparente para os usuários.

Por que deploys veem 503s

Se novas instâncias são registradas antes de estarem saudáveis, ou se todos os backends estão brevemente drenando, o load balancer não tem para onde enviar o tráfego e retorna 503. Health checks corretos e connection draining previnem isso.

Erros transitórios de balancer

503s breves enquanto um pool de backend se recicla durante um deploy são transitórios. Os runners da Latchkey repetem automaticamente as respostas transitórias de load balancer para endpoints comuns, então uma lacuna momentânea de backends saudáveis não falha um step de verificação de deploy.

Principais conclusões

  • Um network load balancer espalha o tráfego por backends saudáveis atrás de um único endereço.
  • Os health checks decidem quais instâncias recebem tráfego, viabilizando deploys sem downtime.
  • Um 503 durante o deploy geralmente significa que nenhum backend está saudável no momento para atender.

Guias relacionados