Szabályozási műveletek a Azure Service Bus

A natív felhőmegoldások a számítási feladatokkal skálázható korlátlan erőforrások fogalmát adják. Bár ez a fogalma igazabb a felhőben, mint a helyszíni rendszerek esetében, a felhőben továbbra is vannak korlátozások. Ezek a korlátozások az ügyfélalkalmazás-kérelmek szabályozását okozhatják a standard és a prémium szintű szinteken is, ahogy az ebben a cikkben tárgyalt.

Szabályozás standard szinten

A Service Bus standard szintje több-bérlős beállításként működik használatalapú díjszabási modellel. Itt ugyanazon a fürtön több névtér osztozik a lefoglalt erőforrásokon. A standard szint a fejlesztői környezetekhez, a minőségbiztosítási környezetekhez és az alacsony átviteli sebességű éles rendszerekhez ajánlott választás.

Korábban a Service Busnak durva szabályozási korlátai voltak, szigorúan az erőforrás-használattól függően. Lehetőség van azonban a szabályozási logika finomítására, és kiszámítható szabályozási viselkedés biztosítására az erőforrásokat megosztó összes névtér számára.

Annak érdekében, hogy biztosítsa az erőforrások igazságos használatát és elosztását az azonos erőforrásokat használó standard Service Bus-névterek között, a szabályozási logikát a rendszer hitelalapúra módosította.

Megjegyzés

Fontos megjegyezni, hogy a szabályozás nem új a Azure Service Bus és a natív felhőszolgáltatásban.

A hitelalapú szabályozás egyszerűen finomítja azt, ahogyan a különböző névterek osztják meg az erőforrásokat egy több-bérlős standard szintű környezetben, és így lehetővé teszi a méltányos használatot az erőforrásokat megosztó összes névtér számára.

Mi az a kreditalapú szabályozás?

A hitelalapú szabályozás korlátozza az adott névtéren egy adott időszakban végrehajtható műveletek számát. Íme a kreditalapú szabályozás munkafolyamata.

  • Minden időszak elején a Service Bus bizonyos számú kreditet biztosít az egyes névtereknek.
  • A küldő vagy fogadó ügyfélalkalmazások által végrehajtott műveletek beleszámítanak ezekbe a kreditekbe (és kivonják őket a rendelkezésre álló kreditekből).
  • Ha a kreditek kimerülnek, az azt követő műveletek szabályozása a következő időszak kezdetéig történik.
  • A kreditek a következő időszak elején töltődnek fel.

Mik a hitelkeretek?

A kreditkorlátok jelenleg másodpercenként 1000 kreditre vannak beállítva (névtérenként). Nem minden művelet jön létre egyenlőként. Íme az egyes műveletek hitelköltségei

Művelet Hitelköltség
Adatműveletek (Send, SendAsync, Receive, ReceiveAsync, ) Peek Üzenetenként 1 kredit
Felügyeleti műveletek (Create, Read, Update, Delete üzenetsorokon, témakörökben, előfizetésekben, szűrőkben) 10 kredit

Megjegyzés

Amikor elküld egy témakört, a rendszer az egyes üzeneteket szűrők alapján értékeli ki, mielőtt elérhetővé válik az előfizetésben. Az egyes szűrőértékelések is beleszámítanak a kreditkeretbe (azaz szűrőértékelésenként 1 kreditet).

Honnan tudhatom, hogy szabályozva vagyok?

Amikor az ügyfélalkalmazás-kérelmek szabályozása folyamatban van, az ügyfélalkalmazás a következő kiszolgálói választ kapja.

The request was terminated because the entity is being throttled. Error code: 50009. Please wait 2 seconds and try again.

Hogyan kerülhetem el a szabályozást?

A megosztott erőforrások esetében fontos, hogy az erőforrásokat megosztó különböző Service Bus-névterekben méltányos használatot kényszerítsünk ki. A szabályozás biztosítja, hogy egyetlen számítási feladat kiugrása ne okozza ugyanazon erőforrások más számítási feladatainak szabályozását. Amint azt a cikk későbbi részében említettük, nincs kockázat a szabályozásra, mert az ügyféloldali SDK-k (és más Azure PaaS-ajánlatok) beépítették az alapértelmezett újrapróbálkozási szabályzatot . A szabályozott kérelmeket exponenciális visszalépéssel újrapróbáljuk, és végül a kreditek feltöltése után is meg fog haladni.

Érthető, hogy egyes alkalmazások érzékenyek lehetnek a szabályozásra. Ebben az esetben javasoljuk, hogy az aktuális Service Bus standard névteret prémium szintűre migrálja. A migrálás során dedikált erőforrásokat rendelhet a Service Bus-névtérhez, és megfelelően skálázhatja fel az erőforrásokat, ha kiugróan magas a számítási feladatok száma, és csökkentheti a szabályozás valószínűségét. Emellett, ha a számítási feladat a normál szintre csökken, leskálázhatja a névtérhez lefoglalt erőforrásokat.

Szabályozás prémium szinten

A Service Bus prémium szintje dedikált erőforrásokat foglal le az üzenetkezelési egységek tekintetében az ügyfél által beállított névterekhez. Ezek a dedikált erőforrások kiszámítható átviteli sebességet és késést biztosítanak, és magas átviteli sebességhez vagy érzékeny éles minőségű rendszerekhez ajánlottak. Emellett a prémium szint lehetővé teszi az ügyfelek számára, hogy vertikálisan felskálázhassák átviteli kapacitásukat, amikor kiugróan magas számítási feladatokat tapasztalnak. További információ: Azure Service Bus névtér üzenetkezelési egységeinek automatikus frissítése.

Hogyan működik a szabályozás a Service Bus Premiumban?

A prémium szintű kizárólagos erőforrás-kiosztással a szabályozást kizárólag a névtérhez lefoglalt erőforrások korlátozásai vezérlik. Ha a kérések száma meghaladja a jelenleg kiszolgálható erőforrások számát, a kérések szabályozva lesznek.

Honnan tudhatom, hogy szabályozva vagyok?

A Service Bus prémium szintű tarifacsomagjában többféleképpen is azonosíthatja a szabályozást.

  • A szabályozott kérelmek megjelennek az Azure Monitor-kérelmek metrikáiban, hogy megállapítsa , hány kérelem lett szabályozva.
  • A magas processzorhasználat azt jelzi, hogy az aktuális erőforrás-kiosztás magas, és a kérések szabályozva lehetnek, ha az aktuális számítási feladat nem csökken.
  • A magas memóriahasználat azt jelzi, hogy az aktuális erőforrás-kiosztás magas, és a kérések szabályozva lehetnek, ha az aktuális számítási feladat nem csökken.

Hogyan kerülhetem el a szabályozást?

Mivel a Prémium szintű Service Bus-névtér már rendelkezik dedikált erőforrásokkal, csökkentheti a szabályozás lehetőségét a névtérhez rendelt üzenetküldési egységek számának vertikális felskálázásával a számítási feladat kiugrásának bekövetkezésekor (vagy előrejelzésében). További információ: Azure Service Bus névtér üzenetkezelési egységeinek automatikus frissítése.

Gyakori kérdések

Hogyan befolyásolja a szabályozás az alkalmazásomat?

Ha egy kérés szabályozva van, az azt jelenti, hogy a szolgáltatás foglalt, mert több kéréssel szembesül, mint amennyit az erőforrások megengednek. Ha néhány pillanat múlva újra megpróbálja ugyanazt a műveletet, miután a szolgáltatás átdolgozta az aktuális számítási feladatát, a kérést meg lehet tartani.

Mivel a szabályozás minden natív felhőszolgáltatás elvárt viselkedése, az újrapróbálkozási logika magában a Service Bus SDK-ban van beépítve. Az alapértelmezett beállítás az automatikus újrapróbálkozás exponenciális visszakapcsolással, hogy ne legyen minden alkalommal ugyanaz a kérés szabályozva. Az alapértelmezett újrapróbálkozási logika minden műveletre érvényes lesz.

Megjegyzés

A más külső szolgáltatásokat meghívó üzenetfeldolgozási kódot ezek a szolgáltatások is szabályozhatják. A forgatókönyvek kezelésével kapcsolatos további információkért tekintse meg a szabályozási mintával kapcsolatos dokumentációt.

A szabályozás adatvesztést eredményez?

Azure Service Bus az adatmegőrzésre van optimalizálva, biztosítjuk, hogy a Service Busnak küldött összes adat le legyen kötelezve a tárolásra, mielőtt a szolgáltatás nyugtázza a kérés sikerességét.

Miután a Service Bus sikeresen elismerte a kérést, az azt jelenti, hogy a Service Bus sikeresen feldolgozta a kérést. Ha a Service Bus hibát ad vissza, az azt jelenti, hogy a Service Bus nem tudta feldolgozni a kérést, és az ügyfélalkalmazásnak újra meg kell próbálkoznia a kéréssel.

Ha azonban egy kérés szabályozva van, a szolgáltatás azt jelenti, hogy erőforrás-korlátozások miatt nem tudja elfogadni és feldolgozni a kérést. Ez nem jelent semmilyen adatvesztést, mert a Service Bus egyszerűen nem vizsgálta meg a kérést. Ebben az esetben a Service Bus SDK alapértelmezett újrapróbálkozási szabályzatára támaszkodva biztosítható, hogy a kérés végül feldolgozva legyen.

Következő lépések

A Service Bus-üzenetkezelés használatával kapcsolatos további információkért és példákért tekintse meg az alábbi speciális témaköröket: