Algoritmo do Balanceador de Carga do Azure

O Azure Load Balancer é o Load Balancer de maior desempenho do Azure, mantendo a latência ultrabaixa. Para saber mais sobre o Balanceador de Carga do Azure, visite Visão geral do Balanceador de Carga do Azure ou Componentes do Balanceador de Carga do Azure.

O Azure Load Balancer usa um hashing baseado em tupla como o algoritmo de balanceamento de carga.

Algoritmo de balanceamento de carga

Ao criar uma regra de balanceador de carga, você pode distribuir fluxos de tráfego de entrada do frontend de um balanceador de carga para seus pools de back-end. O Azure Load Balancer usa um algoritmo de hash de cinco tuplas para a distribuição de fluxos de entrada (não bytes). O balanceador de carga reescreve os cabeçalhos dos fluxos de cabeçalhos TCP/UDP ao direcionar o tráfego para as instâncias do pool de back-end (o balanceador de carga não reescreve cabeçalhos HTTP/HTTPS). Quando a sonda de integridade do balanceador de carga indica um ponto de extremidade de back-end íntegro, as instâncias de back-end estão disponíveis para receber novos fluxos de tráfego.

Por padrão, o Azure Load Balancer usa um hash de cinco tuplas.

As cinco tuplas incluem:

  • Endereço IP de origem
  • Porta de origem
  • Endereço IP de destino
  • Porto de destino
  • Número de protocolo IP para mapear fluxos para servidores disponíveis

Você também pode usar o modo de distribuição de afinidade de sessão que usa balanceamento de carga baseado em duas ou três tuplas.

O Azure Load Balancer suporta qualquer cenário de aplicação TCP/UDP e não fecha nem origina fluxos. O balanceador de carga também não interage com a carga útil de nenhum fluxo. As cargas úteis do aplicativo são transparentes para o balanceador de carga. Qualquer aplicação UDP ou TCP pode ser suportada.

O balanceador de carga opera na camada 4 e não fornece funcionalidade de gateway de camada de aplicativo. Os handshakes de protocolo sempre ocorrem diretamente entre o cliente e a instância do pool de back-end. Como o balanceador de carga não interage com a carga TCP nem fornece descarregamento TLS, você pode criar cenários criptografados abrangentes. O uso do balanceador de carga ganha grande escalabilidade horizontal para aplicativos TLS ao encerrar a conexão TLS na própria VM. Por exemplo, a capacidade de criação de chaves de sessão TLS só é limitada pelo tipo e o número de VMs que adicionar ao conjunto de back-ends.

Uma resposta a um fluxo de entrada é sempre uma resposta de uma máquina virtual. Quando o fluxo chega à máquina virtual, o endereço IP de origem original também é preservado. Cada ponto de extremidade é respondido por uma VM. Por exemplo, um handshake TCP ocorre entre o cliente e a VM de back-end selecionada. Uma resposta a uma solicitação para um front-end é uma resposta gerada por uma VM de back-end. Ao validar com êxito a conectividade com um front-end, você está validando a conectividade em pelo menos uma máquina virtual de back-end.

Próximos passos