Questo articolo è stato tradotto automaticamente. Per visualizzare l'articolo in inglese, selezionare la casella di controllo Inglese. È possibile anche visualizzare il testo inglese in una finestra popup posizionando il puntatore del mouse sopra il testo.
Traduzione
Inglese

Schema LoadBalancerProbe

 

Il probe di bilanciamento del carico è un probe di integrità definito dal cliente per gli endpoint UDP e gli endpoint nelle istanze del ruolo. LoadBalancerProbe non è un elemento autonomo, viene combinato con il ruolo Web o il ruolo di lavoro in un file di definizione del servizio. LoadBalancerProbe può essere utilizzato da più ruoli.

L'estensione predefinita del file di definizione del servizio è .csdef.

Il bilanciamento del carico di Azure è responsabile per indirizzare il traffico in ingresso per le istanze del ruolo.  Il bilanciamento del carico determina quali istanze possono ricevere il traffico tramite sondaggio regolarmente ogni istanza per determinare l'integrità di tale istanza.  Il bilanciamento del carico controlla ogni istanza più volte al minuto.  Esistono due diverse opzioni per fornire l'integrità dell'istanza per il bilanciamento del carico – il probe di bilanciamento del carico predefinito, o probe di bilanciamento del carico personalizzato che viene implementato mediante la definizione di LoadBalancerProbe nel file con estensione csdef.

Il probe predefinito del dispositivo di bilanciamento del carico utilizza l'agente guest nella macchina virtuale che resta in attesa e invia una risposta HTTP 200 OK solo se l'istanza è in stato Pronto (ovvero l'istanza non è occupata, in riciclo, in arresto e così via). Se l'agente guest non invia la risposta HTTP 200 OK, il servizio di bilanciamento del carico di Azure contrassegna l'istanza per indicare che non risponde e arresta l'invio di traffico all'istanza in questione. Il bilanciamento del carico di Azure continua a effettuare il ping dell'istanza e se l'agente Guest risposta HTTP 200, il bilanciamento del carico di Azure invierà il traffico a tale istanza nuovamente.  Quando si utilizza un ruolo web in genere viene eseguito il codice del sito Web in cui non è monitorato dall'infrastruttura di Azure w3wp.exe o agente guest, ovvero gli errori di w3wp.exe (es. le risposte HTTP 500) non vengono segnalati all'agente guest e il servizio di bilanciamento del carico non viene informato di rimuovere l'istanza dalla rotazione.

Il probe di bilanciamento del carico personalizzato esegue l'override del probe di agente guest predefinito e consente di creare la logica personalizzata per determinare l'integrità dell'istanza del ruolo.  Il bilanciamento del carico esegue regolarmente il probe dell'endpoint (ogni 15 secondi, per impostazione predefinita) e l'istanza viene considerato in rotazione se risponde con un ACK TCP o HTTP 200 entro il periodo di timeout (valore predefinito è 31 secondi).  Questo può essere utile per implementare la logica per rimuovere istanze dalla rotazione di bilanciamento del carico, ad esempio restituiscono uno stato non 200 se l'istanza è superiore al 90% della CPU.  Per i ruoli web utilizzando w3wp.exe che ciò significa che è anche ottenere monitoraggio automatico del sito Web, in quanto gli errori nel codice del sito Web verranno restituito uno stato non 200 per il probe di bilanciamento del carico.  Se non si definisce un LoadBalancerProbe nel file con estensione csdef quindi il carico del servizio di bilanciamento comportamento predefinito come descritto in precedenza verrà utilizzati.

Se si utilizza un probe di bilanciamento del carico personalizzato è necessario assicurarsi che la logica prende in considerazione il metodo RoleEnvironment.OnStop.  Quando si utilizza il probe di bilanciamento del carico predefinito verrà intrapresa l'istanza dalla rotazione prima OnStop chiamato, ma un probe di bilanciamento del carico personalizzato può continuare restituire un messaggio 200 OK durante l'evento OnStop.  Se si utilizza l'evento OnStop di pulizia della cache, arrestare il servizio o in caso contrario, apportare modifiche che possono influenzare il runtime di comportamento del servizio, è necessario assicurarsi che la logica di probe di bilanciamento carico personalizzato verrà rimossa l'istanza dalla rotazione.

Il formato di base di un file di definizione del servizio contenente un probe di bilanciamento del carico è il seguente.

<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>

Nell'elemento LoadBalancerProbes del file di definizione del servizio sono inclusi i seguenti elementi:

L'elemento LoadBalancerProbes descrive la raccolta di probe di bilanciamento del carico. Si tratta dell'elemento padre dell'elemento Elemento LoadBalancerProbe.

L'elemento LoadBalancerProbe definisce il probe di integrità per un modello. È possibile definire più probe di bilanciamento del carico.

La tabella seguente descrive gli attributi dell'elemento LoadBalancerProbe.

Attributo

Tipo

Descrizione

name

string

Obbligatorio. Nome del probe di bilanciamento del carico. Il nome deve essere univoco.

protocol

string

Obbligatorio. Specifica il protocollo dell'endpoint. I possibili valori sono http o tcp. Se si specifica tcp, è necessario ricevere un ACK affinché l'esecuzione del probe abbia esito positivo. Se si specifica http, è necessario ricevere una risposta 200 OK dall'URI specificato affinché l'esecuzione del probe abbia esito positivo.

path

string

L'URI utilizzato per la richiesta di stato di integrità dalla macchina virtuale. path è obbligatorio se protocol è impostato su http. In caso contrario, non è consentito.

Nessun valore predefinito.

port

integer

Facoltativa. Porta per la comunicazione del probe. Si tratta di un elemento facoltativo per qualsiasi endpoint in quanto per il probe può essere utilizzata la stessa porta. È ugualmente possibile configurare una porta diversa per il probe. I valori possibili sono compresi tra 1 e 65535, estremi inclusi.

Il valore predefinito è impostato dall'endpoint.

intervalInSeconds

integer

Facoltativa. Intervallo, in secondi, indicante la frequenza di esecuzione del probe sull'endpoint per ottenere lo stato di integrità. In genere, l'intervallo è leggermente inferiore alla metà del periodo di timeout allocato (in secondi), il che consente di eseguire due probe completi prima di escludere l'istanza dalla rotazione.

Il valore predefinito è 15, quello minimo è 5.

timeoutInSeconds

integer

Facoltativa. Periodo di timeout, in secondi, applicato al probe quando nessuna risposta determina l'arresto del recapito del traffico all'endpoint. Questo valore consente di escludere gli endpoint dalla rotazione in modo più o meno rapido rispetto al tempo impiegato in genere in Azure (ovvero in base ai valori predefiniti).

Il valore predefinito è 31, il valore minimo è 11.

Mostra: