Skálázás az Event Hubs használatával

Az Event Hubs skálázását két tényező befolyásolja.

  • Átviteli egységek (standard szint) vagy feldolgozási egységek (prémium szintű)
  • Partíciók

Átviteli egységek

Az eseményközpontok átviteli kapacitását átviteli egységek vezérlik. Az átviteli egységek előre meghatározott kapacitásegységek. Egyetlen átviteli egység lehetővé teszi a következőket:

  • Bejövő forgalom: Másodpercenként legfeljebb 1 MB vagy másodpercenként 1000 esemény (attól függően, hogy melyik az első).
  • Kimenő forgalom: Másodpercenként legfeljebb 2 MB vagy másodpercenként 4096 esemény.

A megvásárolt átviteli egységek kapacitásán túl a bejövő forgalom szabályozva van, és az Event Hubs egy ServerBusyExceptionet dob. A kimenő forgalom nem eredményez szabályozási kivételeket, de továbbra is a megvásárolt átviteli egységek kapacitására korlátozódik. Ha közzétételi sebességhez kapcsolódó kivételeket kap, vagy nagyobb kimenő forgalomra számított, ellenőrizze, hány átviteli egységet vásárolt a névtérhez. Az átviteli egységeket az Azure Portal névtereinek Méretezés lapján kezelheti. Az event hubs API-k használatával programozott módon is kezelheti az átviteli egységeket.

Az átviteli egységek előre vannak adva, és óránként számlázzák. Miután megvásárolta, az átviteli egységek után legalább egy órányi díjat ki kell fizetni. Az Event Hubs-névterekhez legfeljebb 40 átviteli egység vásárolható, és ezek a névtér összes eseményközpontjában használhatók.

Az Event Hubs automatikus feltöltési funkciója automatikusan felskálázódik az átviteli egységek számának növelésével a használati igények kielégítése érdekében. Az átviteli egységek számának növelése megakadályozza a szabályozási forgatókönyveket, amelyekben:

  • Az adatforgalom sebessége meghaladja a beállított átviteli egységeket.
  • Az adatforgalom-kérelmek sebessége meghaladja a beállított átviteli egységeket.

Az Event Hubs szolgáltatás növeli az átviteli sebességet, ha a terhelés meghaladja a minimális küszöbértéket, anélkül, hogy a kérések a ServerBusy-hibákkal meghiúsulnak.

Az automatikus feltöltési funkcióval kapcsolatos további információkért lásd : Átviteli sebességegységek automatikus méretezése.

Feldolgozási egységek

Az Event Hubs Premium kiváló teljesítményt és jobb elkülönítést biztosít egy felügyelt több-bérlős PaaS-környezetben. A prémium szintű erőforrások a PROCESSZOR és a memória szintjén vannak elkülönítve, így minden bérlői számítási feladat külön fut. Ezt az erőforrástárolót feldolgozási egységnek (PU) nevezzük. Minden Event Hubs Premium-névtérhez 1, 2, 4, 8 vagy 16 feldolgozási egységet vásárolhat.

Az, hogy mennyit lehet feldolgozni és streamelni egy feldolgozóegységtel, különböző tényezőktől függ, például az előállítóktól, a fogyasztóktól, a betöltési és feldolgozási sebességtől és még sok mástól.

Az Event Hubs Premium-névtér például egy PU-val és egy eseményközponttal (100 partícióval) körülbelül ~5-10 MB/s bejövő és 10-20 MB/s kimenő magkapacitást kínálhat az AMQP- vagy Kafka-számítási feladatokhoz.

A PU-k prémium szintű névtérhez való konfigurálásáról további információt a feldolgozási egységek konfigurálása című témakörben talál.

Feljegyzés

A kvótákkal és korlátozásokkal kapcsolatos további információkért lásd: Azure Event Hubs – kvóták és korlátok.

Partíciók

Az Event Hubs egy vagy több partícióba rendezi az eseményközpontnak küldött eseménysorozatokat. Az újabb események érkezésekor a rendszer hozzáadja őket a sorozat végéhez.

Image that shows an event hub with a few partitions.

A partíciók véglegesítési naplóként is felfoghatók. A partíciók az alábbi információkat tartalmazó eseményadatokat tartalmazzák:

  • Az esemény törzse
  • Az eseményt leíró felhasználó által definiált tulajdonságcsomag
  • Metaadatok, például a partíció eltolása, a streamsorozatban lévő száma
  • Szolgáltatásoldali időbélyeg, amelyen elfogadták

Diagram that displays the older to newer sequence of events.

A partíciók használatának előnyei

Az Event Hubs úgy lett kialakítva, hogy segítsen a nagy mennyiségű esemény feldolgozásában, és a particionálás kétféleképpen segít:

  • Annak ellenére, hogy az Event Hubs egy PaaS-szolgáltatás, egy fizikai valóság van alatta. Az események sorrendjét megőrző naplók fenntartásához az alapul szolgáló tárolóban és a replikákban kell tartani ezeket az eseményeket, és ez egy ilyen napló átviteli sebességének felső határát eredményezi. A particionálás lehetővé teszi, hogy több párhuzamos naplót használjon ugyanarra az eseményközpontra, és így megszorozza a rendelkezésre álló nyers bemeneti-kimeneti (IO-) átviteli kapacitást.
  • A saját alkalmazásainak lépést kell tartaniuk az eseményközpontba küldött események mennyiségének feldolgozásával. Összetett lehet, és jelentős, vertikálisan felskálázott, párhuzamos feldolgozási kapacitást igényel. Az események kezelésére egyetlen folyamat kapacitása korlátozott, ezért több folyamatra van szükség. A partíciók a megoldás által táplálják ezeket a folyamatokat, és mégis biztosítják, hogy minden esemény egyértelmű feldolgozási tulajdonossal rendelkezik.

Partíciók száma

A partíciók száma az eseményközpont létrehozásakor van megadva. Az egyes tarifacsomagokhoz engedélyezett partíciók számának egy és a maximális partíciószám közöttinek kell lennie. Az egyes szintek partíciószámkorlátját ebben a cikkben találja.

Javasoljuk, hogy legalább annyi partíciót válasszon, amennyit az adott eseményközpont alkalmazásának maximális terhelése során szükséges. A prémium és dedikált szinteken kívüli szintek esetében nem módosíthatja az eseményközpontok partíciószámát a létrehozás után. Egy prémium vagy dedikált szinten lévő eseményközpont esetében növelheti a partíciók számát a létrehozása után, de nem csökkentheti őket. A streamek partíciók közötti eloszlása akkor változik, amikor a partíciókulcsok partíciókra való leképezése módosul, ezért érdemes megpróbálni elkerülni az ilyen módosításokat, ha az események relatív sorrendje számít az alkalmazásban.

A partíciók maximális megengedett értékre állítása csábító, de mindig vegye figyelembe, hogy az eseménystreameket úgy kell strukturálni, hogy valóban kihasználhassa a több partíció előnyeit. Ha az összes esemény abszolút sorrendjének megőrzésére vagy csak néhány alstreamre van szüksége, előfordulhat, hogy nem tudja kihasználni a számos partíció előnyeit. Emellett számos partíció teszi összetettebbé a feldolgozási oldalt.

A díjszabás szempontjából nem számít, hogy hány partíció található egy eseményközpontban. Ez függ a tarifacsomagok (átviteli egységek (TU-k) számától a standard szinthez, a prémium szintű feldolgozási egységektől (PU-k ) és a dedikált szint kapacitásegységeitől (CU-k) a névtérhez vagy a dedikált fürthöz. A standard szint eseményközpontja például 32 partícióval vagy egy partícióval pontosan ugyanazzal a költséggel jár, ha a névtér egy TU-kapacitásra van beállítva. Emellett a dedikált fürt névterén vagy termékváltozatán a partíciószámtól függetlenül skálázhatja a TU-kat vagy APU-kat.

Mivel a partíció egy adatszervezési mechanizmus, amely lehetővé teszi az adatok párhuzamos közzétételét és használatát. Javasoljuk, hogy a méretezési egységeket (a standard szint átviteli sebességegységeit, a prémium szintű feldolgozási egységeket vagy a dedikált szint kapacitásegységeit) és a partíciókat az optimális skálázás érdekében egyensúlyozza ki. Általában partíciónként 1 MB/s maximális átviteli sebességet javasoljuk. Ezért a partíciók számának kiszámítására szolgáló hüvelykujjszabály a maximális várható átviteli sebesség 1 MB/s-tal való felosztása. Ha például a használati esethez 20 MB/s szükséges, javasoljuk, hogy legalább 20 partíciót válasszon az optimális átviteli sebesség eléréséhez.

Ha azonban olyan modellel rendelkezik, amelyben az alkalmazás affinitást mutat egy adott partícióhoz, a partíciók számának növelése nem előnyös. További információ: rendelkezésre állás és konzisztencia.

Események leképezése partíciókra

A partíciókulccsal a beérkező eseményadatok képezhetők le adott partíciókra az adatok elrendezése céljából. A partíciókulcs az eseményközpontnak átadott, a küldő által megadott érték. A folyamat egy statikus kivonatoló függvényen keresztül történik, amely létrehozza a partíció-hozzárendelést. Ha nem ad meg partíciókulcsot az események közzétételekor, a rendszer ciklikus időszeleteléses hozzárendelést használ.

Az esemény-közzétevő csak a partíciókulcsot ismeri, azt a partíciót nem, amelyre az esemény közzé lesz téve. A kulcs és a partíció szétválasztása révén a küldőnek nem szükséges behatóan ismernie az alárendelt feldolgozási folyamatokat. Az eszközszintű vagy egyedi felhasználói identitás remek partíciókulcs lehet, de más tulajdonságok, például a földrajzi hely alapján szintén lehetséges az események csoportosítása egyetlen partícióra.

A partíciókulcs megadása lehetővé teszi, hogy a kapcsolódó események ugyanabban a partícióban és a pontos sorrendben legyenek tárolva, amelyben megérkeztek. A partíciókulcs egy olyan sztring, amely az alkalmazáskörnyezetből származik, és azonosítja az események közötti összefüggéseket. A partíciókulcs által azonosított események sorozata stream. A partíciók számos ilyen streamhez több multiplexált naplótárolók.

Feljegyzés

Bár közvetlenül a partíciókra küldhet eseményeket, nem javasoljuk, különösen akkor, ha a magas rendelkezésre állás fontos Önnek. Az eseményközpontok rendelkezésre állását partíciószintre szűkíti. További információ: Rendelkezésre állás és konzisztencia.

Következő lépések

Az alábbi webhelyeken további információt talál az Event Hubsról: