Exportar (0) Imprimir
Expandir Tudo

Esquema LoadBalancerProbe

Atualizado: fevereiro de 2014

A investigação do balanceador de carga é uma investigação de integridade dos pontos de extremidade UDP e dos pontos de extremidade em instâncias de função. O LoadBalancerProbe não é um elemento autônomo; ele é combinado com a função web ou com a função de trabalho em um arquivo de definição de serviço. LoadBalancerProbe pode ser usado por mais de uma função.

A extensão padrão para o arquivo de definição de serviço é .csdef.

O balanceador de carga do Azure é responsável por rotear tráfego de entrada às suas instâncias de função. O balanceador de carga determina quais instâncias podem receber o tráfego regularmente sondando cada instância para determinar a integridade dessa instância. O balanceador de carga sonda cada instância várias vezes por minuto. Há duas opções diferentes para fornecer a integridade da instância para o balanceador de carga – a sonda padrão do balanceador de carga ou uma sonda personalizada do balanceador de carga que é implementada definindo o LoadBalancerProbe no arquivo .csdef.

A sonda padrão do balanceador de carga utiliza o Agente Convidado dentro da máquina virtual, e escuta e responde com uma resposta HTTP 200 OK somente quando a instância está no estado Pronto (ou seja, A instância não está nos estados Ocupado, Reciclando, Parando etc.). Se o Agente Convidado não responder com HTTP 200 OK, o Balanceador de Carga do Azure marcará a instância como sem resposta e interromperá o envio de tráfego para essa instância. O Balanceador de carga do Azure continuará a executar ping na instância e, se o Agente Convidado responder com HTTP 200, o Balanceador de Carga do Azure enviará o tráfego para essa instância novamente. Ao usar uma função da Web, o código do site será executado normalmente em w3wp.exe, que não será monitorado pela malha do Azure ou pelo agente convidado, o que significa que as falhas no w3wp.exe (por exemplo, respostas HTTP 500) não serão reportadas para o agente convidado e o balanceador de carga não saberá colocar essa instância fora de rotação.

A sonda personalizada do balanceador de carga substitui a sonda padrão do agente convidado e permite criar sua própria lógica personalizada para determinar a integridade da função da instância. O balanceador de carga sondará regularmente seu ponto de extremidade (a cada 15 segundos, por padrão) e a instância será considerada na rotação se responder com um TCP ACK ou HTTP 200 dentro do tempo limite (padrão de 31 segundos). Isso pode ser útil para implementar a sua própria lógica para remover instâncias da rotação do balanceador de carga, por exemplo, retornando um status não 200 se a instância estiver acima de 90% da CPU. Para as funções da Web que usam w3wp.exe, isso também significa que você obtém o monitoramento automático do seu site, considerando que as falhas no código do site retornarão um status não 200 para a sonda do balanceador de carga. Se você não definir um LoadBalancerProbe no arquivo .csdef, o comportamento padrão do balanceador de carga será usado conforme descrito acima.

Se você usar uma sonda personalizada do balanceador de carga, precisará garantir que sua lógica leve em consideração o método RoleEnvironment.OnStop. Ao usar a sonda padrão do balanceador de carga, a instância será colocada para fora de rotação antes que OnStop seja chamado, mas uma sonda personalizada do balanceador de carga poderá continuar a retornar 200 OK durante o evento de OnStop. Se você estiver usando o evento OnStop para limpar o cache, parar o serviço ou fazer alterações que possam afetar o comportamento de tempo de execução do serviço, precisará garantir que a lógica personalizada da sonda do balanceador de carga removerá a instância de rotação.

O formato básico de um arquivo de definição de serviço que contém uma investigação de um balanceador de carga é:

<ServiceDefinition …>
   <LoadBalancerProbes>
      <LoadBalancerProbe name="<load-balancer-probe-name>" protocol="[http|tcp]" path="<uri-for-checking-health-status-of-vm>" port=”<port-number>” intervalInSeconds="<interval-in-seconds>" timeoutInSeconds="<timeout-in-seconds>"/> 
   </LoadBalancerProbes>
</ServiceDefinition>

O elemento LoadBalancerProbes do arquivo de definição de serviço inclui os seguintes elementos:

O elemento LoadBalancerProbes descreve a coleção de investigações do balanceador de carga. Este é o elemento pai do Elemento LoadBalancerProbe.

O elemento LoadBalancerProbe define a investigação de integridade de um modelo. Você pode definir várias investigações do balanceador de carga.

A tabela a seguir descreve os atributos do elemento LoadBalancerProbe:

 

Atributo Tipo Descrição

name

string

Obrigatória. Nome da investigação do balanceador de carga. O nome deve ser exclusivo.

protocol

string

Obrigatória. Especifica o protocolo do ponto de extremidade. Os valores possíveis são http ou tcp. Se tcp é especificado, um ACK recebido é necessário para que a investigação tenha êxito. Se http é especificado, um uma resposta 200 OK de um URI especificado é necessária para que a investigação tenha êxito.

path

string

O URI usado para solicitação do estado da integridade da VM. path é necessário se protocol for definido como http. Caso contrário, não será permitido.

Não há valor padrão.

port

integer

Opcional. A porta para comunicação da investigação. É opcional para qualquer ponto de extremidade, porque a mesma porta será usada para a investigação. Você também pode configurar uma porta diferente para sua investigação. Os valores possíveis variam de 1 a 65535, incluso.

O valor padrão é definido pelo ponto de extremidade.

intervalInSeconds

integer

Opcional. O intervalo, em segundos, para a frequência de verificação do status de integridade do ponto de extremidade. Normalmente, o intervalo é um pouco menor do que a metade do tempo limite alocado (em segundos), o que permite duas investigações completas antes de retirar a instância da rotação.

O valor padrão é 15 e o valor mínimo é 5.

timeoutInSeconds

integer

Opcional. O tempo limite, em segundos, é aplicado à investigação, na qual nenhuma resposta resultará em interrupção do fornecimento de tráfego adicional ao ponto de extremidade. Esse valor permite que os pontos de extremidade sejam retirados da rotação de forma mais rápida ou mais lenta do que os tempos típicos usados no Azure (que são os padrões).

O valor padrão é 31 e o valor mínimo é 11.

Mostrar:
© 2014 Microsoft