VENDITE: 1-800-867-1389

Schema LoadBalancerProbe

Aggiornamento: febbraio 2014

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 servizio di bilanciamento del carico di Azure è responsabile dell'instradamento del traffico in entrata alle istanze dei ruoli. Il servizio di bilanciamento del carico individua le istanze che possono ricevere il traffico eseguendo il probe di ognuna di esse allo scopo di determinarne l'integrità. Il servizio di bilanciamento del carico esegue il probe di ogni istanza più volte al minuto. Esistono due diverse opzioni per indicare lo stato di integrità dell'istanza al servizio di bilanciamento del carico, ovvero il probe predefinito del servizio di bilanciamento del carico oppure un probe personalizzato implementato in base alla 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 servizio di bilanciamento del carico di Azure continua a eseguire il ping all'istanza e se riceve la risposta HTTP 200 dall'agente guest invierà nuovamente il traffico. Quando si utilizza un ruolo Web, il codice del sito Web viene in genere eseguito in 3wp.exe il quale non è monitorato dall'infrastruttura di Azure né dall'agente guest, il che significa che gli errori in w3wp.exe (ovvero 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 personalizzato del servizio di bilanciamento del carico sostituisce il probe dell'agente guest predefinito e consente di creare logica personalizzata per determinare lo stato di integrità dell'istanza del ruolo. Il servizio di bilanciamento del carico esegue periodicamente il probe dell'endpoint (ogni 15 secondi per impostazione predefinita) e l'istanza viene considerata in rotazione se viene ricevuta una risposta con ACK TCP o HTTP 200 entro il periodo di timeout (31 secondi per impostazione predefinita). Ciò può risultare utile per implementare logica propria per la rimozione di istanze dalla rotazione di bilanciamento del carico, ad esempio restituendo uno stato diverso da 200 se l'istanza presenta oltre il 90% di utilizzo della CPU. Per i ruoli Web che utilizzano w3wp.exe, ciò significa inoltre che si ottiene il monitoraggio automatico del sito Web in quanto gli errori nel codice del sito Web restituiranno uno stato diverso da 200 al probe del servizio di bilanciamento del carico. Se non si definisce un elemento LoadBalancerProbe nel file con estensione csdef, verrà utilizzato il comportamento di bilanciamento del carico predefinito come descritto sopra.

Se si utilizza un probe di bilanciamento del carico personalizzato, è necessario accertarsi che la logica tenga conto del metodo RoleEnvironment.OnStop. Quando si utilizza il probe di bilanciamento del carico predefinito l'istanza viene esclusa dalla rotazione prima della chiamata a OnStop, tuttavia un probe personalizzato può continuare a restituire 200 OK durante l'evento OnStop. Se si utilizza l'evento OnStop per pulire la cache, arrestare il servizio o apportare altre modifiche che possono influire sul comportamento di runtime del servizio, è necessario assicurarsi che il probe di bilanciamento del carico personalizzato rimuova 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.

Nella tabella seguente sono descritti 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

URI utilizzato per richiedere lo stato di integrità della macchina virtuale. path è obbligatorio se protocol è impostato su http. In caso contrario, non è consentito.

Nessun valore predefinito.

port

integer

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

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

Facoltativo. 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, quello minimo è 11.

Il documento è risultato utile?
(1500 caratteri rimanenti)
Grazie per i commenti inviati.
Mostra:
© 2014 Microsoft