(0) exportieren Drucken
Alle erweitern

LoadBalancerProbe-Schema

Letzte Aktualisierung: Februar 2014

Die Lastenausgleichsüberprüfung ist eine kundendefinierte Zustandsüberprüfung von UDP-Endpunkten und Endpunkten in Rolleninstanzen. LoadBalancerProbe ist kein eigenständiges Element; es wird mit der Webrolle oder der Workerrolle in einer Dienstdefinitionsdatei kombiniert. Eine LoadBalancerProbe kann von mehr als einer Rolle verwendet werden.

Die Standarderweiterung für die Dienstdefinitionsdatei ist .csdef.

Der Azure-Lastenausgleich ist für das Weiterleiten von eingehendem Datenverkehr an die Rolleninstanzen verantwortlich. Der Lastenausgleich bestimmt, welche Instanzen Datenverkehr erhalten können, indem jede Instanz regelmäßig überprüft wird, um ihre Integrität zu bestimmen. Der Lastenausgleich überprüft jede Instanz mehrmals pro Minute. Es gibt zwei verschiedene Optionen zum Bereitstellen von Instanzzuständen an den Lastenausgleich - die standardmäßige Lastenausgleichsüberprüfung oder eine benutzerdefinierte Lastenausgleichsüberprüfung, die implementiert wird, indem LoadBalancerProbe in der CSDEF-Datei definiert wird.

Die Standard-Lastenausgleichsüberprüfung verwendet den Gast-Agent innerhalb des virtuellen Computers, der überwacht und nur mit „HTTP 200 OK“ antwortet, wenn die Instanz bereit ist (also nicht ausgelastet oder im Wiederverwendungs- oder Anhalteprozess usw.). Wenn der Gast-Agent nicht mit „HTTP 200 OK“ antwortet, markiert der Azure-Lastenausgleich die Instanz als nicht reagierend und sendet keinen Datenverkehr mehr an diese Instanz. Der Azure-Lastenausgleich pingt die Instanz weiter an, und wenn der Gast-Agent mit "HTTP 200" antwortet, sendet der Azure-Lastenausgleich wieder Datenverkehr an diese Instanz. Wenn Sie eine Webrolle verwenden, wird Ihr Websitecode in der Regel in w3wp.exe ausgeführt, was nicht von der Azure-Struktur oder dem Gast-Agent überwacht wird. Dass bedeutet, dass Fehler in w3wp.exe (z. B. HTTP 500-Antworten) nicht an den Gast-Agent gemeldet werden und der Lastenausgleich nicht erfährt, dass diese Instanz aus der Rotation genommen werden muss.

Die benutzerdefinierte Lastenausgleichsüberprüfung übersteuert die Standardprüfung des Gast-Agent und ermöglicht es Ihnen, eigene benutzerdefinierte Logik zu erstellen, um den Zustand der Rolleninstanz zu überprüfen. Der Lastenausgleich überprüft regelmäßig den Endpunkt (standardmäßig alle 15 Sekunden), und die Instanz gilt als in Rotation, wenn sie innerhalb des Timeoutzeitraums (standardmäßig 31 Sekunden) mit „TCP ACK“ oder „HTTP 200“ antwortet. Das kann nützlich sein, wenn Sie Ihre eigene Logik implementieren möchten, um Instanzen aus der Lastenausgleichrotation zu entfernen, z. B. durch das Zurückgeben eines Nicht-200-Status, wenn die Instanz bei über 90 % CPU liegt. Für Webrollen, die w3wp.exe verwenden, bedeutet dies auch, dass die Website automatisch überwacht wird, da bei Fehlern im Websitecode ein Nicht-200-Status an die Lastenausgleichsüberprüfung zurückgegeben wird. Wenn Sie LoadBalancerProbe nicht in der CSDEF-Datei definieren, dann wird das Standardverhalten des Lastenausgleichs wie oben beschrieben verwendet.

Wenn Sie eine benutzerdefinierte Lastenausgleichsüberprüfung verwenden, müssen Sie sicherstellen, dass die Logik die RoleEnvironment.OnStop-Methode berücksichtigt. Wenn Sie die standardmäßige Lastenausgleichsüberprüfung verwenden, wird die Instanz vor dem Aufruf von OnStop aus der Rotation genommen, aber eine benutzerdefinierte Lastenausgleichsüberprüfung kann weiterhin ein „200 OK“ während des Stop-Ereignisses zurückgeben. Wenn Sie das OnStop-Ereignis verwenden, um den Cache zu bereinigen, den Dienst anzuhalten oder anderweitig Änderungen vorzunehmen, die sich auf das Laufzeitverhalten des Dienstes auswirken können, dann müssen Sie sicherstellen, dass Ihre benutzerdefinierte Lastenausgleichsüberprüfungs-Logik die Instanz aus der Rotation entfernt.

Das Grundformat einer Dienstdefinitionsdatei, die eine Lastenausgleichsüberprüfung enthält, lautet wie folgt.

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

Das Element LoadBalancerProbes der Dienstdefinitionsdatei enthält die folgenden Elemente:

Das LoadBalancerProbes-Element beschreibt die Auflistung von Lastenausgleichsüberprüfungen. Dieses Element ist das übergeordnete Element von LoadBalancerProbe-Element.

Das LoadBalancerProbe-Element definiert die Zustandsüberprüfung für ein Modell. Sie können mehrere Lastenausgleichsüberprüfungen definieren.

In der folgenden Tabelle werden die Attribute des LoadBalancerProbe-Elements beschrieben:

 

Attribut Typ Beschreibung

name

string

Erforderlich. Der Name der Lastenausgleichsüberprüfung. Der Name muss eindeutig sein.

protocol

string

Erforderlich. Gibt das Protokoll des Endpunkts an. Mögliche Werte sind http oder tcp. Wenn tcp angegeben wird, ist eine empfangene Bestätigung erforderlich, damit die Überprüfung erfolgreich ist. Wenn http angegeben wird, ist eine „OK 200“-Antwort von der angegebenen URI erforderlich, damit die Überprüfung erfolgreich ist.

path

string

Der URI, der zum Anfordern des Integritätsstatus des virtuellen Computers verwendet wird. path ist erforderlich, wenn protocol auf http festgelegt ist. Andernfalls ist sie nicht zulässig.

Es ist kein Standardwert vorhanden.

port

integer

Optional. Der Port für die Kommunikation mit der Überprüfung. Dies ist für jeden Endpunkt optional, da der gleiche Port dann für die Überprüfung verwendet wird. Sie können auch einen anderen Port für die Überprüfung konfigurieren. Mögliche Werte reichen von 1 bis 65535, einschließlich.

Der Standardwert wird vom Endpunkt festgelegt.

intervalInSeconds

integer

Optional. Das Intervall in Sekunden, das festlegt, wie häufig der Zustand des Endpunkts überprüft wird. Normalerweise ist das Intervall etwas kleiner als die Hälfte des zugeordneten Timeouts (in Sekunden), was zwei vollständige Überprüfungen ermöglicht, bevor die Instanz aus der Rotation herausgenommen wird.

Der Standardwert ist 15, der Mindestwert 5.

timeoutInSeconds

integer

Optional. Das Timeout in Sekunden, das auf die Überprüfung angewendet wird. Keine Antwort führt dazu, dass dem Endpunkt kein Datenverkehr mehr zugestellt wird. Mit diesem Wert können Endpunkte schneller oder langsamer aus der Rotation genommen werden, als dies den typischen Zeiten in Azure (den Standardwerten) entspricht.

Der Standardwert ist 31, der Mindestwert 11.

Anzeigen:
© 2014 Microsoft