Primeiros passos com Load Balancer
Ative Load Balancer em um connector, adicione um segundo endereço com um peso e tire um endereço da rotação.
Este guia orienta você a distribuir as requisições do seu primeiro connector entre dois servidores de origem com Load Balancer.
- Ative Load Balancer no connector e adicione um segundo endereço, com um peso para cada endereço.
- Envie requisições repetidas pelo seu workload e veja respostas dos dois servidores.
- Tire um endereço da rotação e veja toda requisição chegar ao outro.
Quatro partes formam a cadeia, listadas na ordem em que este guia as usa:
- O connector dos Primeiros passos com Connectors recebe Load Balancer e o método Round Robin.
- Os endereços do connector passam a ser dois:
httpbin.org, com peso2, ehttpbingo.org, com peso1. - A regra que envia toda requisição sob
/anythingpara o connector fica como está. - O workload que atende a sua aplicação recebe as requisições. O deployment dele não precisa de alteração.
Os dois servidores são serviços públicos que respondem a uma requisição para /anything/get com uma cópia em JSON dessa requisição. Cada um se identifica no header de resposta server, então a resposta mostra qual endereço respondeu. Para usar os seus próprios servidores, substitua os dois hostnames por servidores que guardam o mesmo conteúdo.
Os pré-requisitos e as três etapas mostram os passos de uma interface por vez. Selecione a sua:
Pré-requisitos
- O resultado dos Primeiros passos com Connectors: o connector
my-connectore uma regra que envia toda requisição sob/anythingpara ele. - O workload domain do workload que atende a aplicação, no formato
<id>.map.azionedge.net. Este guia o escreve como<workload-domain>. curl, para enviar as requisições ao workload domain.
- Acesso ao Azion Console.
Ative Load Balancer e adicione um endereço
Um connector contém um endereço até que Load Balancer esteja ativado. Com Load Balancer ativado, ele contém até 15 endereços, e um método de balanceamento escolhe um deles para cada requisição. Round Robin usa os endereços em sequência. Para os limites, consulte Limites de Connectors.
Cada endereço carrega um peso de 1 a 100, e um peso maior destina mais tráfego a esse endereço. O peso define a proporção de requisições, não uma divisão exata. Cada endereço também carrega uma função do servidor. Os dois endereços deste guia são Primary. Um endereço Backup recebe requisições apenas quando todos os endereços primários falham, e o método IP Hash o recusa. Para mais informações, consulte Função do servidor.
Todo endereço de um connector recebe o mesmo header Host e o mesmo protocolo de transporte. Duas alterações nas opções de conexão fazem uma única configuração funcionar para os dois servidores:
- O header
Hostpassa a ser${host}, o host que o cliente requisitou, em vez dehttpbin.org. Umhttpbin.orgfixo enviaria ahttpbingo.orgum headerHostque nomeia outro servidor. - O connector alcança os dois servidores por HTTP. Por HTTPS,
httpbingo.orgaceita apenas conexões para o próprio nome.
Para ativar Load Balancer com a Azion CLI, coloque o connector inteiro em um arquivo JSON. O comando de atualização precisa do corpo completo, com todos os campos que o connector mantém. Salve este corpo como connector.json:
modules.load_balancer em cada endereço guarda a função e o peso dele. modules.load_balancer sob attributes ativa Load Balancer, e config deve conter pelo menos uma chave.
Atualize o connector a partir do arquivo. Substitua <connector-id> pelo ID do seu connector. O comando precisa de --type, mesmo que o arquivo nomeie o tipo:
A saída confirma a atualização:
O connector tem Load Balancer ativado e dois endereços ativos. As configurações que config deixa de fora recebem os padrões da API: max_retries 0, connection_timeout 60 e read_write_timeout 120.
Confirme que os dois endereços respondem
A verificação é a mesma, qualquer que seja a interface que alterou o connector. Nos comandos, substitua <workload-domain> pelo workload domain do seu workload.
Uma alteração em um connector leva vários minutos para chegar à infraestrutura distribuída da Azion, e os data centers a aplicam em momentos diferentes. Até lá, algumas requisições ainda chegam apenas a httpbin.org, e algumas podem retornar uma página de erro 502. Repita as requisições até que os dois servidores respondam. Para mais informações, consulte Propagação.
Envie uma requisição para um caminho sob /anything e imprima os headers de resposta com o corpo:
Envie a mesma requisição várias vezes. Uma resposta de httpbin.org traz este header server:
Uma resposta de httpbingo.org traz este:
Os dois servidores respondem pelo mesmo caminho, então o connector distribui as requisições entre os dois endereços.
As respostas não chegam em uma ordem fixa. Cada data center faz o balanceamento por conta própria, então uma sequência de requisições pode favorecer um endereço, e a proporção varia de uma execução para outra. Para mais informações, consulte Load Balancer.
Tire um endereço da rotação
Um endereço com Active desativado continua no connector e não recebe requisições. Use isso para tirar um servidor de operação antes de uma manutenção, sem excluir o endereço. Esta etapa tira httpbingo.org da rotação.
Para tirar o endereço da rotação com a Azion CLI, edite o connector.json que você salvou. Adicione "active": false ao endereço httpbingo.org:
Atualize o connector a partir do arquivo:
A saída confirma a atualização:
O endereço httpbingo.org está inativo e mantém a função e o peso dele.
A alteração chega aos data centers em momentos diferentes, como quando você adicionou o endereço. Por vários minutos, algumas requisições ainda chegam a httpbingo.org. Envie esta requisição várias vezes:
Quando todos os data centers tiverem a alteração, toda resposta traz o header de httpbin.org:
Nenhuma resposta traz o header Fly. O connector envia toda requisição ao endereço ativo, e httpbingo.org continua no connector com a função e o peso dele.