Algoritmo do Azure Load Balancer

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

O Azure Load Balancer usa um hash baseado em tupla como um 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 de um front-end do 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 dos 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 os cabeçalhos HTTP/HTTPS). Quando o teste 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 com cinco tuplas.

A tupla de cinco inclui:

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

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

O Azure Load Balancer oferece suporte para qualquer cenário de aplicativo TCP/UDP e não fecha nem origina fluxos. O balanceador de carga também não interage com o conteúdo de nenhum fluxo. O conteúdo do aplicativo é transparente para o balanceador de carga. Qualquer aplicativo UDP ou TCP pode ser compatível.

O balanceador de carga opera na camada 4 e não fornece a 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 o conteúdo de TCP e nem fornece o descarregamento de TLS, você pode criar cenários criptografados abrangentes. O uso do balanceador de carga apresenta uma grande expansão para aplicativos TLS encerrando a conexão TLS na VM em si. Por exemplo, a capacidade de chaveamento de sua sessão TLS é limitada apenas pelo tipo e pelo número de VMs adicionadas ao pool de back-end.

Uma resposta para um fluxo de entrada sempre é uma resposta de uma máquina virtual. Quando o fluxo chega na máquina virtual, o endereço IP de origem original também é preservado. Cada ponto de extremidade é respondido por uma VM. Por exemplo, ocorre um handshake TCP 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 com pelo menos uma máquina virtual de back-end.

Próximas etapas