Métodos de encaminhamento de tráfego para a origem

Aplica-se a: ✔️ Front Door Standard ✔️ Front Door Premium ✔️ Front Door (clássico)

Importante

Azure Front Door (clássico) não suporta criação de perfil, integração de novos domínios ou certificados geridos e retira-se a 31 de março de 2027. Para evitar interrupções no serviço, migre para Azure Front Door Standard ou Premium. Para mais informações, consulte a descontinuação do Azure Front Door (clássico).

O Azure Front Door suporta quatro métodos de encaminhamento de tráfego para gerir a forma como o seu tráfego de HTTP/HTTPS é distribuído entre as diferentes origens. Quando as solicitações do usuário chegam aos pontos de presença da Front Door, o método de roteamento configurado garante que as solicitações sejam encaminhadas para o melhor recurso de back-end.

Nota

No artigo, um Origin refere-se ao back-end e um grupo de origem refere-se ao pool de back-end na configuração do Azure Front Door (clássico).

Os quatro métodos de roteamento de tráfego são:

  • Latência: encaminha as solicitações para as origens com a menor latência dentro de um intervalo de sensibilidade aceitável, garantindo que as solicitações sejam enviadas para as origens mais próximas em termos de latência de rede.

  • Prioridade: Permite definir uma prioridade para suas origens, designando uma origem primária para lidar com todo o tráfego e uma origem secundária como backup se a primária ficar indisponível.

  • Ponderado: Atribui um peso a cada origem para distribuir o tráfego uniformemente ou de acordo com coeficientes de peso especificados. O tráfego é distribuído com base em valores de peso se as latências das origens estiverem dentro do intervalo de sensibilidade aceitável.

  • Afinidade de sessão: garante que as solicitações do mesmo usuário final sejam enviadas para a mesma origem, configurando a afinidade de sessão para seus hosts ou domínios de frontend.

Nota

Nas camadas Standard e Premium do Azure Front Door, nome do ponto de extremidade é referido como host Frontend no Azure Front Door (clássico).

Todas as configurações do Front Door incluem monitorização da integridade do back-end e failover global automatizado. Para obter mais informações, consulte Monitorização do back-end do Front Door. O Azure Front Door pode usar um único método de roteamento ou combinar vários métodos para criar uma topologia de roteamento ideal com base nas necessidades do seu aplicativo.

Nota

Ao usar o motor de regras Front Door, pode configurar regras para substituir as configurações de rotas nos níveis Standard e Premium do Azure Front Door ou substituir o pool de back-end no Azure Front Door (classic) para um pedido. O grupo de origem ou pool de backend definido pelo motor de regras sobrepõe-se ao processo de roteamento descrito neste artigo.

Fluxo de decisão global

O diagrama seguinte ilustra o fluxo de decisão global:

Diagrama explicando como as origens são selecionadas com base nas configurações de prioridade, latência e peso no Azure Front Door.

As etapas de decisão são:

  1. Origens disponíveis: selecione todas as origens habilitadas e íntegras (200 OK) com base na sonda de integridade.
    • Exemplo: Se houver seis origens A, B, C, D, E e F, e C não estiver íntegro e E estiver desativado, as origens disponíveis serão A, B, D e F.
  2. Prioridade: Selecione as origens de prioridade máxima entre as disponíveis.
    • Exemplo: Se as origens A, B e D tiverem prioridade 1 e a origem F tiver prioridade 2, as origens selecionadas serão A, B e D.
  3. Sinal de latência (com base na sonda de integridade): Selecione as origens dentro do intervalo de latência permitido no ambiente do Front Door onde a solicitação chegou. Este intervalo baseia-se na definição de sensibilidade à latência do grupo de origem e na latência das origens mais próximas.
    • Exemplo: Se a latência para a origem A é de 15 ms, para B é de 30 ms e para D é de 60 ms, e a sensibilidade de latência é definida como 30 ms, as origens selecionadas são A e B, pois D excede o intervalo de 30 ms.
  4. Pesos: distribua o tráfego entre as origens finais selecionadas com base nas relações de peso especificadas.
    • Exemplo: Se a origem A tem um peso de 3 e a origem B tem um peso de 7, o tráfego é distribuído 3/10 para A e 7/10 para B.

Caso ative a afinidade de sessão, o primeiro pedido numa sessão segue o fluxo anteriormente explicado. Os pedidos subsequentes vão para a origem selecionada no primeiro pedido.

Roteamento de tráfego baseado em latências mais baixas

Implementar origens em múltiplas localizações globais pode melhorar a resposta da sua aplicação ao encaminhar o tráfego para a origem que está "mais próxima" dos seus utilizadores finais. O método de roteamento de latência é o padrão para configurações de porta frontal do Azure. Esse método direciona as solicitações do usuário para a origem com a menor latência de rede, em vez da localização geográfica mais próxima, garantindo um desempenho ideal.

A arquitetura anycast do Azure Front Door, combinada com o método de roteamento de latência, garante que cada usuário tenha o melhor desempenho com base em sua localização. Cada ambiente Front Door mede de forma independente a latência para as origens, o que significa que os usuários em diferentes locais são encaminhados para a origem que oferece o melhor desempenho para seu ambiente específico.

Nota

Por padrão, a propriedade de sensibilidade de latência é definida como 0 ms. Com essa configuração, as solicitações são sempre encaminhadas para as origens mais rápidas disponíveis. Os pesos nas origens só entram em vigor se duas origens tiverem a mesma latência de rede.

Para obter mais informações, consulte a arquitetura de roteamento do Azure Front Door.

Roteamento de tráfego baseado em prioridades

Para garantir alta disponibilidade, implemente serviços de backup para assumir caso o serviço principal falhe. Esta configuração é conhecida como uma implementação Ativa/Standby ou Ativa/Passiva. O método de roteamento de tráfego Priority no Azure Front Door ajuda a implementar este padrão de recuperação de falhas.

Por padrão, o Azure Front Door roteia o tráfego para as origens com a prioridade mais alta (menor valor de prioridade). Se essas origens primárias ficarem indisponíveis, ele roteia o tráfego para as origens secundárias (próximo valor de prioridade mais baixo). Este processo continua com origens terciárias se as origens primárias e secundárias não estiverem disponíveis. As sondas de saúde monitoram a disponibilidade dos pontos de origem com base no seu estado e saúde configurados.

Configurando a prioridade para origens

Cada origem no teu grupo de origem Azure Front Door tem uma propriedade Priority, que podes definir para um valor entre 1 e 5. Valores mais baixos indicam maior prioridade. Várias origens podem partilhar o mesmo valor de prioridade.

Método ponderado de encaminhamento de tráfego

Nota

Para clientes com um número muito baixo de pedidos por segundo (RPS), devido à forma como os POPs e as máquinas AFD estão distribuídos, o Azure Front Door não pode garantir que os pesos que configura sejam rigorosamente seguidos e o balanceamento de carga pode parecer desproporcionado.

O método de encaminhamento ponderado distribui o tráfego com base em pesos previamente definidos.

Neste método, atribui-se um peso a cada origem no grupo de origens do Azure Front Door. O peso é um inteiro entre 1 e 1.000, com um valor padrão de 50.

O tráfego é distribuído entre as origens disponíveis através de um mecanismo round-robin baseado nas proporções de pesos especificadas, desde que as origens respeitem os limites aceitáveis de latência. Se definires a sensibilidade de latência para 0 milissegundos, os pesos só têm efeito se duas origens tiverem a mesma latência de rede.

O método ponderado suporta vários cenários:

  • Atualização gradual do aplicativo: roteie uma porcentagem do tráfego para uma nova origem e aumente-a gradualmente ao longo do tempo.
  • Migração de aplicativos para o Azure: crie um grupo de origem com origens do Azure e externas. Ajuste os pesos para preferir novas origens, aumentando gradualmente a sua quota de tráfego até que assumam a maior parte do tráfego, depois desative e elimine as origens menos preferidas.
  • Escalamento dinâmico na nuvem para capacidade adicional: expanda as implementações locais na nuvem, adicionando ou habilitando mais origens de dados e especificando a distribuição de tráfego.

Afinidade de sessão

Por padrão, o Azure Front Door encaminha solicitações do mesmo cliente para origens diferentes. No entanto, a afinidade de sessão é útil para aplicações com estado ou cenários em que solicitações subsequentes do mesmo usuário precisam ser processadas pela mesma origem. Esta funcionalidade assegura que a mesma origem processa a sessão de um utilizador, o que é vantajoso para cenários como a autenticação de cliente.

O Azure Front Door usa afinidade de sessão baseada em cookies, onde cookies gerenciados com SHA256 da URL de origem como identificador são usados. Este método direciona o tráfego subsequente de uma sessão de utilizador para a mesma origem.

Pode ativar a afinidade de sessão ao nível do grupo de origem nos níveis Standard e Premium do Azure Front Door, e ao nível do host frontend no Azure Front Door (classic) para cada domínio ou subdomínio configurado. Quando ativa esta funcionalidade, Azure Front Door adiciona cookies nomeados ASLBSA e ASLBSACORS à sessão do utilizador. Estes cookies ajudam a identificar diferentes utilizadores mesmo que partilhem o mesmo endereço IP, o que permite uma distribuição mais equilibrada do tráfego entre as origens.

O tempo de vida do cookie corresponde à sessão do utilizador, uma vez que o Front Door suporta atualmente apenas cookies de sessão.

Nota

O cookie de sessão do navegador mantém a afinidade da sessão ao nível do domínio. Subdomínios sob o mesmo domínio curinga podem compartilhar afinidade de sessão, desde que o navegador do usuário envie solicitações para o mesmo recurso de origem.

Proxies públicos podem interferir com a afinidade de sessão porque estabelecer uma sessão requer que o Front Door adicione um cookie de afinidade de sessão à resposta. Esta ação não pode ser feita se a resposta for cacheável, pois interromperia os cookies de outros clientes que solicitam o mesmo recurso. Para evitar este problema, a afinidade da sessão não é estabelecida se a origem enviar uma resposta que pode ser armazenada em cache. Se a sessão já estiver estabelecida, a cacheabilidade da resposta não importa.

A afinidade da sessão é estabelecida nas seguintes circunstâncias para além dos cenários padrão não cacheáveis:

  • A resposta inclui o cabeçalho Cache-Control com no-store.
  • A resposta contém um cabeçalho válido Authorization .
  • A resposta é um código de status HTTP 302.

Próximos passos