Megosztás a következőn keresztül:


Azure Cloud Services (kiterjesztett támogatás) definíció LoadBalancerProbe séma

A terheléselosztó-mintavétel az UDP-végpontok és a szerepkörpéldányok végpontjainak ügyfél által meghatározott állapotadat-mintavétele. Ez LoadBalancerProbe nem önálló elem, hanem egy szolgáltatásdefiníciós fájl webes vagy feldolgozói szerepkörével kombinálva. Egynél több szerepkör is használhat .LoadBalancerProbe

A szolgáltatásdefiníciós fájl alapértelmezett bővítménye a csdef.

A terheléselosztó-mintavétel funkciója

Az Azure Load Balancer feladata a bejövő forgalom átirányítása a szerepkörpéldányokhoz. A terheléselosztó határozza meg, hogy mely példányok fogadhatják a forgalmat az egyes példányok rendszeres próbafuttatásával a példány állapotának meghatározásához. A terheléselosztó percenként többször is mintavételt ad minden példányra. A példány állapotának a terheléselosztó számára való biztosításának két különböző lehetősége van: az alapértelmezett terheléselosztó-mintavétel vagy egy egyéni terheléselosztó-mintavétel, amelyet a LoadBalancerProbe a csdef fájlban való definiálásával valósít meg.

Az alapértelmezett terheléselosztó-mintavétel a vendégügynököt használja a virtuális gépen belül, amely csak akkor figyel és válaszol HTTP 200 OK-válaszsal, ha a példány kész állapotban van (például ha a példány nincs foglalt, újrahasznosítási, leállási stb. állapotban). Ha a vendégügynök nem tud HTTP 200 OK-val válaszolni, az Azure Load Balancer nem válaszolóként jelöli meg a példányt, és leállítja a forgalom küldését az adott példányra. Az Azure Load Balancer továbbra is pingeli a példányt, és ha a vendégügynök HTTP 200-zal válaszol, az Azure Load Balancer ismét elküldi a forgalmat a példánynak. Webes szerepkör használatakor a webhely kódja általában w3wp.exe fut, amelyet az Azure Fabric vagy a vendégügynök nem figyel, ami azt jelenti, hogy a w3wp.exe hibáit (például HTTP 500-válaszokat) nem jelenti a vendégügynök, és a terheléselosztó nem tudja, hogy a példányt kivegye a forgatásból.

Az egyéni terheléselosztó-mintavétel felülírja az alapértelmezett vendégügynök-mintavételt, és lehetővé teszi saját egyéni logika létrehozását a szerepkörpéldány állapotának meghatározásához. A terheléselosztó rendszeresen mintavételezi a végpontot (alapértelmezés szerint 15 másodpercenként), és a példány rotációban van, ha TCP ACK vagy HTTP 200 protokollal válaszol az időtúllépési időszakon belül (alapértelmezés szerint 31 másodperc). Ez hasznos lehet a saját logikájának implementálásához, hogy eltávolítsa a példányokat a terheléselosztó rotációjából, például 200-nál nem nagyobb állapotot ad vissza, ha a példány 90%-os processzorhasználat felett van. A w3wp.exe használó webes szerepkörök esetében ez azt is jelenti, hogy automatikusan figyeli a webhelyét, mivel a webhelykód hibái nem 200-as állapotot adnak vissza a terheléselosztó mintavételének. Ha nem határoz meg LoadBalancerProbe fájlt a csdef fájlban, akkor a rendszer az alapértelmezett terheléselosztó-viselkedést használja (a korábban leírtak szerint).

Ha egyéni terheléselosztó-mintavételt használ, győződjön meg arról, hogy a logika figyelembe veszi a RoleEnvironment.OnStop metódust. Ha az alapértelmezett terheléselosztó-mintavételt használja, a rendszer a példányt kiveheti a forgatásból az OnStop meghívása előtt, de az egyéni terheléselosztó-mintavétel továbbra is 200 OK értéket adhat vissza az OnStop esemény során. Ha az OnStop esemény használatával megtisztítja a gyorsítótárat, leállítja a szolgáltatást, vagy egyéb módon módosítja a szolgáltatás futásidejét, akkor gondoskodnia kell arról, hogy az egyéni terheléselosztó mintavételi logikája eltávolítsa a példányt a rotációból.

Alapszintű szolgáltatásdefiníciós séma terheléselosztó-mintavételhez

A terheléselosztó-mintavételt tartalmazó szolgáltatásdefiníciós fájl alapformátuma a következő.

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

Sémaelemek

A LoadBalancerProbes szolgáltatásdefiníciós fájl eleme a következő elemeket tartalmazza:

LoadBalancerProbes elem

Az LoadBalancerProbes elem a terheléselosztó-mintavételek gyűjteményét írja le. Ez az elem a LoadBalancerProbe elem szülőeleme.

LoadBalancerProbe elem

Az LoadBalancerProbe elem egy modell állapotmintájának definiálása. Több terheléselosztó-mintavételt is definiálhat.

Az alábbi táblázat az elem attribútumait LoadBalancerProbe ismerteti:

Attribútum Típus Leírás
name string Szükséges. A terheléselosztó-mintavétel neve. A névnek egyedinek kell lennie.
protocol string Szükséges. A végpont protokollját adja meg. A lehetséges értékek: http és tcp. Ha tcp meg van adva, egy fogadott ACK szükséges a mintavétel sikerességéhez. Ha http meg van adva, a mintavétel sikerességéhez 200 OK-válasz szükséges a megadott URI-tól.
path string A virtuális gép állapotának lekéréséhez használt URI. path szükség van, ha protocol be van állítva a következőre http: . Ellenkező esetben nem engedélyezett.

Nincs alapértelmezett érték.
port integer Opcionális. A mintavétel kommunikációjának portja. Ez az attribútum bármely végponthoz választható, mivel ugyanazt a portot használja a mintavételhez. A próbaidőhöz másik portot is konfigurálhat. A lehetséges értékek 1 és 65535 között mozognak, beleértve az értékeket is.

A végpont által beállított alapértelmezett érték.
intervalInSeconds integer Opcionális. A végpont állapotának mintavételi gyakorisága másodpercben. Az intervallum általában valamivel kisebb, mint a lefoglalt időtúllépési időszak fele (másodpercben), ami két teljes mintavételt tesz lehetővé, mielőtt a példányt kivennénk a forgatásból.

Az alapértelmezett érték 15. A minimális érték 5.
timeoutInSeconds integer Opcionális. Az időtúllépési időszak másodpercben alkalmazva van a mintavételre, ahol a válasz nem eredményezi a további forgalom végpontra való kézbesítésének leállítását. Ez az érték lehetővé teszi, hogy a végpontok gyorsabban vagy lassabban legyenek kivehetők a forgatásból, mint az Azure-ban használt szokásos időpontok (amelyek az alapértelmezett értékek).

Az alapértelmezett érték 31. A minimális érték 11.

Lásd még

Cloud Service (kiterjesztett támogatás) definíciós séma.