Dela via


Schema för Azure Cloud Services (klassisk) Definition LoadBalancerProbe

Viktigt

Cloud Services (klassisk) är nu inaktuell för nya kunder och kommer att dras tillbaka den 31 augusti 2024 för alla kunder. Nya distributioner bör använda den nya Azure Resource Manager-baserade distributionsmodellen Azure Cloud Services (utökad support).

Lastbalanserarens avsökning är en kunddefinierad hälsoavsökning av UDP-slutpunkter och slutpunkter i rollinstanser. LoadBalancerProbe är inte ett fristående element. Det kombineras med webbrollen eller arbetsrollen i en tjänstdefinitionsfil. En LoadBalancerProbe kan användas av mer än en roll.

Standardtillägget för tjänstdefinitionsfilen är .csdef.

Funktionen för en lastbalanserareavsökning

Azure Load Balancer ansvarar för att dirigera inkommande trafik till dina rollinstanser. Lastbalanseraren avgör vilka instanser som kan ta emot trafik genom att regelbundet undersöka varje instans för att fastställa hälsotillståndet för den instansen. Lastbalanseraren avsöker varje instans flera gånger per minut. Det finns två olika alternativ för att tillhandahålla instanshälsa för lastbalanseraren – standardavsökningen för lastbalanseraren eller en anpassad lastbalanserareavsökning, som implementeras genom att definiera LoadBalancerProbe i .csdef-filen.

Standardavsökningen för lastbalanserare använder gästagenten på den virtuella datorn, som lyssnar och svarar med ett HTTP 200 OK-svar endast när instansen är i tillståndet Klar (till exempel när instansen inte är i tillståndet Upptagen, Återvinning, Stoppa osv.). Om gästagenten inte svarar med HTTP 200 OK markerar Azure Load Balancer instansen som svarar inte och slutar skicka trafik till den instansen. Azure Load Balancer fortsätter att pinga instansen och om gästagenten svarar med en HTTP 200 skickar Azure Load Balancer trafik till den instansen igen. När du använder en webbroll körs din webbplatskod vanligtvis i w3wp.exe som inte övervakas av Azure Fabric eller gästagenten, vilket innebär fel i w3wp.exe (t.ex. HTTP 500-svar) rapporteras inte till gästagenten och lastbalanseraren vet inte om att ta bort den instansen från rotationen.

Den anpassade lastbalanserarens avsökning åsidosätter standardavsökningen för gästagenten och gör att du kan skapa din egen anpassade logik för att fastställa hälsotillståndet för rollinstansen. Lastbalanseraren avsöker regelbundet slutpunkten (var 15:e sekund som standard) och instansen beaktas i rotation om den svarar med en TCP ACK eller HTTP 200 inom tidsgränsen (standardvärdet är 31 sekunder). Detta kan vara användbart för att implementera din egen logik för att ta bort instanser från lastbalanserarens rotation, till exempel returnera en status som inte är 200 om instansen är över 90 % CPU. För webbroller som använder w3wp.exe innebär det också att du får automatisk övervakning av din webbplats, eftersom fel i webbplatskoden returnerar en status som inte är 200 till lastbalanserarens avsökning. Om du inte definierar en LoadBalancerProbe i .csdef-filen används standardbeteendet för lastbalanserare (enligt beskrivningen ovan).

Om du använder en anpassad lastbalanserareavsökning måste du se till att logiken tar hänsyn till metoden RoleEnvironment.OnStop. När du använder standardavsökningen för lastbalanserare tas instansen ur rotation innan OnStop anropas, men en anpassad lastbalanseringsavsökning kan fortsätta att returnera 200 OK under OnStop-händelsen. Om du använder OnStop-händelsen för att rensa cacheminnet, stoppa tjänsten eller på annat sätt göra ändringar som kan påverka körningsbeteendet för din tjänst måste du se till att logiken för din anpassade lastbalanserares avsökning tar bort instansen från rotationen.

Grundläggande tjänstdefinitionsschema för en lastbalanserareavsökning

Det grundläggande formatet för en tjänstdefinitionsfil som innehåller en lastbalanseringsavsökning är följande.

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

Schemaelement

Elementet LoadBalancerProbes i tjänstdefinitionsfilen innehåller följande element:

LoadBalancerProbes-element

Elementet LoadBalancerProbes beskriver samlingen av lastbalanseringsavsökningar. Det här elementet är det överordnade elementet i LoadBalancerProbe-elementet.

LoadBalancerProbe-element

Elementet LoadBalancerProbe definierar hälsoavsökningen för en modell. Du kan definiera flera avsökningar för lastbalanserare.

I följande tabell beskrivs elementets LoadBalancerProbe attribut:

Attribut Typ Beskrivning
name string Krävs. Namnet på lastbalanserarens avsökning. Namnet måste vara unikt.
protocol string Krävs. Anger protokollet för slutpunkten. Möjliga värden är http eller tcp. Om tcp anges krävs en mottagen ACK för att avsökningen ska lyckas. Om http anges krävs ett 200 OK-svar från den angivna URI:n för att avsökningen ska lyckas.
path string Den URI som används för att begära hälsostatus från den virtuella datorn. path krävs om protocol är inställt på http. Annars är det inte tillåtet.

Det finns inget standardvärde.
port integer Valfritt. Porten för att kommunicera avsökningen. Detta är valfritt för alla slutpunkter eftersom samma port sedan används för avsökningen. Du kan också konfigurera en annan port för avsökning. Möjliga värden sträcker sig från 1 till 65535, inklusive.

Standardvärdet anges av slutpunkten.
intervalInSeconds integer Valfritt. Intervallet i sekunder för hur ofta slutpunkten ska avsökas för hälsostatus. Vanligtvis är intervallet något mindre än hälften av den allokerade tidsgränsen (i sekunder) som tillåter två fullständiga avsökningar innan instansen tas ur rotation.

Standardvärdet är 15, minimivärdet är 5.
timeoutInSeconds integer Valfritt. Tidsgränsen i sekunder tillämpas på avsökningen där inget svar resulterar i att ytterligare trafik stoppas från att levereras till slutpunkten. Det här värdet gör att slutpunkter kan tas ur rotation snabbare eller långsammare än de vanliga tiderna som används i Azure (som är standardvärdena).

Standardvärdet är 31, minimivärdet är 11.

Se även

Definitionsschema för Molntjänst (klassisk)