Load Balancer
Distribua as requisições de um connector entre até 15 endereços de origem com Load Balancer e continue servindo quando um servidor falha.
Um balanceador de carga fica à frente de vários servidores que guardam o mesmo conteúdo. Para cada requisição, ele escolhe o servidor que a recebe, por uma política chamada método de balanceamento. Os servidores dividem a carga, então nenhum servidor sozinho carrega toda ela, e o site continua respondendo quando um deles falha.
Load Balancer distribui as requisições de um connector do tipo http entre até 15 endereços em vez de um. Ele age dentro do connector, em cada requisição que uma regra de aplicação com o behavior Set Connector envia a ele. Um método de balanceamento, Round Robin, Least Connections ou IP Hash, escolhe o endereço, e o peso e a função do servidor de cada endereço moldam essa escolha. Use Load Balancer para continuar servindo quando um servidor falha, favorecer um servidor maior, manter uma origem de reserva ou manter cada IP de cliente em um só servidor.
Estrutura da configuração do Load Balancer
Load Balancer age por meio da configuração de um connector: um switch e um método no connector, e uma função e um peso em cada endereço. Este corpo ativa Load Balancer com Round Robin para dois endereços com pesos 2 e 1, enviado como corpo de PATCH /v4/workspace/connectors/<connector-id>:
modules.load_balancerdentro deattributesativa Load Balancer, e oconfigdele nomeia omethod:round_robin, o padrão,least_connouip_hash. Comenableddefinido comotrue,configprecisa carregar pelo menos uma chave, ou Azion API recusa a requisição com28014.modules.load_balancerem cada endereço guarda oserver_roledele,primarypor padrão oubackup, e oweightdele, um número inteiro de 1 a 100 cujo padrão é1.configtambém aceitamax_retries,connection_timeouteread_write_timeout. Cada chave que este corpo omite recebe o padrão da API:0novas tentativas,60segundos e120segundos. Para cada campo e o intervalo dele, consulte Configurações de connector.- Azion Console grava os mesmos campos. Em um connector, o switch Load Balancer da seção Modules mostra Method e os campos de novas tentativas e de timeout. Address Management guarda Server Role e Weight de cada endereço.
O modelo se transfere de outros balanceadores de carga: um pool é um connector com Load Balancer ativado, e a steering policy dele é o método de balanceamento.
Caminho da requisição
Load Balancer age dentro do connector, depois que uma regra o nomeia e antes que uma conexão com a origem se abra. Ele muda qual endereço recebe a requisição, não como a requisição é endereçada.
Este diagrama acompanha uma requisição, da regra até um de dois endereços:
- O behavior Set Connector de uma regra nomeia um connector que tem Load Balancer ativado.
- O método de balanceamento do connector escolhe um dos seus endereços ativos, usando o peso e a função do servidor de cada endereço.
- O connector abre a conexão com esse endereço, com o mesmo header
Host, o mesmo prefixo de caminho e o mesmo protocolo de todos os outros endereços. - Quando a conexão falha, o connector tenta de novo quantas vezes Max Retries permitir.
Para saber como Round Robin, Least Connections e IP Hash escolhem um endereço, consulte Métodos de balanceamento.
Escopo e limites
- Tipo de connector: Load Balancer funciona somente em um connector do tipo
http, já que um connector do tipostorageoulive_ingestnão tem endereços. Ele vem desativado em um connector novo, e Origin Shield pode ficar ativado ao lado dele. - Requisições balanceadas: as regras continuam decidindo quais requisições chegam ao connector, então qualquer critério de Rules Engine para Applications, como o caminho, decide quais requisições são balanceadas.
- Métodos: os três métodos formam a lista completa, e nenhum deles direciona uma requisição pela localização do visitante ou por uma latência medida. A configuração do Load Balancer não tem health check: nem sonda, nem protocolo de sonda, nem intervalo. Um endereço de backup recebe requisições somente quando todos os endereços primários falham, e IP Hash recusa um endereço de backup com
28005. - Novas tentativas e timeouts: eles existem somente enquanto Load Balancer está ativado, e um connector sem ele segue os padrões da plataforma em Como Connectors funciona. Quando você ativa Load Balancer no Azion Console, o formulário preenche
3novas tentativas e timeouts de30e60segundos. Pela API,max_retriestem o padrão0, então o connector não tenta de novo uma conexão que falhou até que você o aumente. - Manutenção: desativar Active tira um endereço da rotação sem excluí-lo, e o endereço mantém as suas portas, a sua função e o seu peso. Para saber quando ele deixa de receber requisições, consulte Endereços ativos.
- Interfaces: você ativa Load Balancer no formulário do connector no Azion Console ou pela API em
/v4/workspace/connectors. Azion CLI lê o connector inteiro de um arquivo, comazion update connector --connector-id <connector-id> --type http --file connector.json. No azion.config.js, um connector o declara emattributes.modules.loadBalancer. - Observabilidade: Data Stream registra em
$upstream_addro endereço e a porta de cada servidor para onde uma requisição foi enviada, no template predefinido Applications + WAF Event Collector. Quando Load Balancer escolhe outra origem para uma requisição, as variáveis$upstream_*guardam um valor por conexão, como mostra Vários valores em um campo. - Limites: com Load Balancer ativado, um connector guarda até 15 endereços, e um 16º é recusado com
28011. Para cada limite, o erro quando ele é ultrapassado e o que cada plano inclui, consulte Limites de Connectors e, para os valores, Preços. - Produtos vizinhos: Load Balancer escolhe entre os endereços de um connector depois que a requisição chega à Azion. Registros DNS ponderados que dividem o tráfego entre endereços IP no momento da resolução pertencem ao Edge DNS.
- Termos: o glossário de Connectors define as palavras às quais as páginas do Load Balancer dão um significado específico, como método de balanceamento, função do servidor e peso.