Azure Cloud Services (klassiek) Definitie LoadBalancerProbe-schema

Belangrijk

Cloud Services (klassiek) is nu afgeschaft voor nieuwe klanten en wordt op 31 augustus 2024 voor alle klanten buiten gebruik gesteld. Nieuwe implementaties moeten gebruikmaken van het nieuwe implementatiemodel op basis van Azure Resource Manager Azure Cloud Services (uitgebreide ondersteuning).

De load balancer-test is een door de klant gedefinieerde statustest van UDP-eindpunten en -eindpunten in rolinstanties. De LoadBalancerProbe is geen zelfstandig element; het wordt gecombineerd met de webrol of werkrol in een servicedefinitiebestand. Een LoadBalancerProbe kan door meer dan één rol worden gebruikt.

De standaardextensie voor het servicedefinitiebestand is .csdef.

De functie van een load balancer-test

De Azure Load Balancer is verantwoordelijk voor het routeren van binnenkomend verkeer naar uw rolinstanties. De load balancer bepaalt welke instanties verkeer kunnen ontvangen door elke instantie regelmatig te onderzoeken om de status van dat exemplaar te bepalen. De load balancer test elke instantie meerdere keren per minuut. Er zijn twee verschillende opties voor het opgeven van de instantiestatus aan de load balancer: de standaard load balancer-test of een aangepaste load balancer-test, die wordt geïmplementeerd door de LoadBalancerProbe te definiëren in het .csdef-bestand.

De standaard load balancer-test maakt gebruik van de gastagent in de virtuele machine, die alleen luistert en reageert met een HTTP 200 OK-antwoord wanneer het exemplaar de status Gereed heeft (zoals wanneer het exemplaar zich niet in de status Bezet, Recyclen, Stoppen, enzovoort bevindt). Als de gastagent niet reageert met HTTP 200 OK, markeert de Azure Load Balancer het exemplaar als niet-reagerend en stopt het verzenden van verkeer naar dat exemplaar. De Azure Load Balancer blijft het exemplaar pingen en als de gastagent reageert met een HTTP 200, verzendt de Azure Load Balancer opnieuw verkeer naar dat exemplaar. Wanneer u een webrol gebruikt, wordt de code van uw website doorgaans uitgevoerd in w3wp.exe die niet wordt bewaakt door de Azure-infrastructuur of gastagent. Dit betekent fouten in w3wp.exe (bijvoorbeeld. HTTP 500-antwoorden) wordt niet gerapporteerd aan de gastagent en de load balancer weet niet dat dit exemplaar uit de rotatie moet worden gehaald.

De aangepaste load balancer-test overschrijft de standaardtest van de gastagent en stelt u in staat om uw eigen aangepaste logica te maken om de status van het rolexemplaar te bepalen. De load balancer test regelmatig uw eindpunt (standaard elke 15 seconden) en het exemplaar wordt als rotatie beschouwd als het reageert met een TCP ACK of HTTP 200 binnen de time-outperiode (standaard 31 seconden). Dit kan handig zijn om uw eigen logica te implementeren om instanties te verwijderen uit de rotatie van de load balancer, bijvoorbeeld het retourneren van een niet-200-status als het exemplaar hoger is dan 90% CPU. Voor webrollen die w3wp.exe gebruiken, betekent dit ook dat uw website automatisch wordt bewaakt, omdat fouten in de code van uw website een niet-200-status retourneren aan de load balancer-test. Als u geen LoadBalancerProbe definieert in het .csdef-bestand, wordt het standaardgedrag van de load balancer (zoals eerder beschreven) gebruikt.

Als u een aangepaste load balancer-test gebruikt, moet u ervoor zorgen dat uw logica rekening houdt met de methode RoleEnvironment.OnStop. Wanneer u de standaard load balancer-test gebruikt, wordt het exemplaar uit de rotatie gehaald voordat OnStop wordt aangeroepen, maar een aangepaste load balancer-test kan een 200 OK blijven retourneren tijdens de OnStop-gebeurtenis. Als u de gebeurtenis OnStop gebruikt om de cache op te schonen, de service te stoppen of anderszins wijzigingen aan te brengen die van invloed kunnen zijn op het runtime-gedrag van uw service, moet u ervoor zorgen dat de aangepaste load balancer-testlogica het exemplaar uit rotatie verwijdert.

Basisschema voor servicedefinities voor een load balancer-test

De basisindeling van een servicedefinitiebestand met een load balancer-test is als volgt.

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

Schema-elementen

Het LoadBalancerProbes element van het servicedefinitiebestand bevat de volgende elementen:

LoadBalancerProbes Element

Het LoadBalancerProbes element beschrijft de verzameling load balancer-tests. Dit element is het bovenliggende element van het element LoadBalancerProbe.

LoadBalancerProbe Element

Het LoadBalancerProbe -element definieert de statustest voor een model. U kunt meerdere load balancer-tests definiëren.

In de volgende tabel worden de kenmerken van het LoadBalancerProbe -element beschreven:

Kenmerk Type Description
name string Vereist. De naam van de load balancer-test. De naam moet uniek zijn.
protocol string Vereist. Hiermee geeft u het protocol van het eindpunt. Mogelijke waarden zijn http en tcp. Als tcp is opgegeven, is een ontvangen ACK vereist om de test te laten slagen. Als http is opgegeven, is een 200 OK-antwoord van de opgegeven URI vereist om de test te laten slagen.
path string De URI die wordt gebruikt voor het aanvragen van de status van de VM. path is vereist als protocol is ingesteld op http. Anders is het niet toegestaan.

Er is geen standaardwaarde.
port integer Optioneel. De poort voor het communiceren van de test. Dit is optioneel voor elk eindpunt, omdat dezelfde poort vervolgens wordt gebruikt voor de test. U kunt ook een andere poort configureren voor hun test. Mogelijke waarden variëren van 1 tot 65535, inclusief.

De standaardwaarde wordt ingesteld door het eindpunt.
intervalInSeconds integer Optioneel. Het interval, in seconden, voor hoe vaak het eindpunt moet worden gecontroleerd op status. Normaal gesproken is het interval iets minder dan de helft van de toegewezen time-outperiode (in seconden), waardoor twee volledige tests zijn toegestaan voordat het exemplaar uit de rotatie wordt gehaald.

De standaardwaarde is 15, de minimumwaarde is 5.
timeoutInSeconds integer Optioneel. De time-outperiode, in seconden, die wordt toegepast op de test waarbij geen reactie tot gevolg heeft dat verder verkeer naar het eindpunt wordt afgeleverd. Met deze waarde kunnen eindpunten sneller of langzamer uit de rotatie worden gehaald dan de gebruikelijke tijden die in Azure worden gebruikt (dit zijn de standaardinstellingen).

De standaardwaarde is 31, de minimumwaarde is 11.

Zie ook

Definitieschema voor cloudservice (klassiek)