Az Azure Event Grid MQTT-közvetítő funkciójának áttekintése

Az Azure Event Grid lehetővé teszi, hogy a Message Queuing Telemetry Transport (MQTT) ügyfelei kommunikáljanak egymással és az Azure-szolgáltatásokkal az IoT-megoldások támogatása érdekében. Az Event Grid MQTT-közvetítő funkciójával az alábbi forgatókönyveket hajthatja végre. Az ilyen forgatókönyveket bemutató kódmintákért tekintse meg ezt az adattárat.

  • Telemetriai adatok betöltése több-az-egyhez üzenetkezelési mintával. Ez a minta lehetővé teszi az alkalmazás számára, hogy átruházza az eszközökkel fennálló kapcsolatok nagy számának kezelését az Event Gridre.
  • Vezérelje az MQTT-ügyfeleket a kérés-válasz (egy-az-egyhez) üzenetkezelési mintával. Ez a minta lehetővé teszi, hogy minden ügyfél korlátozás nélkül kommunikáljon más ügyféllel, függetlenül az ügyfelek szerepkörétől.
  • Riasztásokat közvetíthet egy ügyfélflotta számára az egy-a-többhöz üzenetkezelési minta használatával. Ez a minta lehetővé teszi, hogy az alkalmazás csak egy üzenetet tegyen közzé, amelyet a szolgáltatás minden érdekelt ügyfél számára replikál.
  • Az MQTT-ügyfelek adatainak integrálása az MQTT-üzenetek Azure-szolgáltatásokba és webhookokra való átirányításával a HTTP Leküldéses kézbesítés funkcióval. Az Azure-szolgáltatásokkal való integrációval olyan adatfolyamokat hozhat létre, amelyek az IoT-eszközökről származó adatbetöltéssel kezdődnek.

Az MQTT közvetítő többek között az autóipari, mobilitási és gyártási forgatókönyvek megvalósításához ideális. Ha szeretné megtudni, hogyan hozhat létre biztonságos és méretezhető megoldásokat az MQTT-ügyfelek millióinak felhőhöz való csatlakoztatásához az Azure üzenetkezelési és adatelemzési szolgáltatásaival, tekintse meg az autóipari és gyártási referenciaarchitektúrákat.

Az Event Grid magas szintű diagramja, amely kétirányú MQTT-kommunikációt jelenít meg a közzétevői és előfizetői ügyfelekkel.

Főbb fogalmak

Az Event Grid MQTT-közvetítő szolgáltatásban az alábbi fő fogalmak szerepelnek.

MQTT

Az MQTT egy korlátozott környezetekhez tervezett, közzétételre feliratkozott üzenettovábbítási átviteli protokoll. Ez egy népszerű kommunikációs szabvány az IoT-forgatókönyvekhez a hatékonyság, a méretezhetőség és a megbízhatóság miatt. Az MQTT-közvetítő lehetővé teszi, hogy az ügyfelek az MQTT v3.1.1, MQTT v3.1.1 webes aljzatokon keresztül, MQTT v5, és MQTT v5 webes aljzatokon keresztül tegyenek közzé és iratkozzanak fel üzenetekre. Az alábbi lista az MQTT-közvetítő néhány funkciókiemelését mutatja be:

  • MQTT v5 funkciók:

    • Last Will and Testament: Értesíti az MQTT-ügyfeleket a többi MQTT-ügyfél hirtelen megszakadásáról. Ezzel a funkcióval kiszámítható és megbízható kommunikációt biztosíthat az MQTT-ügyfelek között a váratlan kapcsolatmegszakadások során.
    • Felhasználói tulajdonságok: Lehetővé teszi egyéni kulcs/érték párok hozzáadását az üzenet fejlécében, hogy több kontextust biztosítson az üzenetről. Adja meg például az üzenet célját vagy forrását, hogy a fogadó hatékonyan tudja kezelni az üzenetet.
    • Kérés-válasz minta: Lehetővé teszi az ügyfelek számára, hogy kihasználják a szabványos kérés-válasz aszinkron mintát, megadva a válasz témakörét és korrelációs azonosítóját abban a kérésben, hogy az ügyfél előzetes konfiguráció nélkül válaszoljon.
    • Üzenet lejárati időköze: Lehetővé teszi, hogy deklarálja az MQTT-közvetítőnek, amikor figyelmen kívül hagy egy már nem releváns vagy érvényes üzenetet. Ilyen például az elavult parancsok vagy riasztások figyelmen kívül hagyása.
    • Témakör aliasai: Segít az ügyfeleknek csökkenteni a témakörmező méretét, ami csökkenti az adatátvitelt.
    • Maximális üzenetméret: Lehetővé teszi az ügyfelek számára a kiszolgálóról kezelhető maximális üzenetméret szabályozását.
    • Maximális fogadás: Lehetővé teszi az ügyfelek számára az üzenetek sebességének szabályozását a képességeiktől függően, például a feldolgozási sebességtől vagy a tárolási képességektől függően.
    • Tiszta kezdési és munkamenet-lejárat: Lehetővé teszi az ügyfelek számára a munkamenet megbízhatóságának és biztonságának optimalizálását az ügyfél előfizetési adatainak és üzeneteinek konfigurálható időintervallumra való megőrzésével.
    • Negatív nyugtázások: Lehetővé teszi, hogy az ügyfelek hatékonyan reagáljanak a különböző hibakódokra.
    • Kiszolgáló által küldött leválasztási csomagok: Lehetővé teszi az ügyfelek számára a leválasztások hatékony kezelését.
    • MQTT Retain: Biztosítja, hogy a közvetítő tárolja az utolsó közzétett üzenetet egy témakörben, és automatikusan kézbesíti azt az új előfizetőknek. Ez a funkció lehetővé teszi, hogy az eszközök azonnal megkapják a legújabb ismert állapotot anélkül, hogy a következő frissítésre várnak. Ez a funkció gyorsabb és megbízhatóbb állapotszinkronizálást tesz lehetővé az IoT-rendszerekben.
    • Megosztott előfizetések: Lehetővé teszi, hogy több ügyfél is használjon üzeneteket egyetlen előfizetésből csoportként, a közvetítő pedig elosztott terhelésű, méretezhető feldolgozás céljából osztja el az üzeneteket közöttük.
    • Előfizetés-azonosítók (előzetes verzió): Lehetővé teszi az MQTT 5-ügyfelek számára, hogy minden előfizetést egyedi numerikus azonosítóval címkézhessenek fel, ami leegyszerűsíti annak azonosítását, hogy egy fogadott üzenet melyik előfizetésnek felel meg, ha egy ügyfél több előfizetést kezel.
  • MQTT v3.1.1 funkciók:

    • Last Will and Testament: Értesíti az MQTT-ügyfeleket a többi MQTT-ügyfél hirtelen megszakadásáról. Ezzel a funkcióval kiszámítható és megbízható kommunikációt biztosíthat az MQTT-ügyfelek között a váratlan kapcsolatmegszakadások során.
    • Állandó munkamenetek: Biztosítja a megbízhatóságot az ügyfél előfizetési adatainak és üzeneteinek megőrzésével, amikor az ügyfél leválasztja a kapcsolatot.
    • Szolgáltatásminőség (QoS) 0 és 1: Lehetővé teszi ügyfelei számára a kommunikáció hatékonyságának és megbízhatóságának ellenőrzését.
    • MQTT Retain: Biztosítja, hogy a közvetítő tárolja az utolsó közzétett üzenetet egy témakörben, és automatikusan kézbesíti azt az új előfizetőknek. Ez a funkció lehetővé teszi, hogy az eszközök azonnal megkapják a legújabb ismert állapotot anélkül, hogy a következő frissítésre várnak. Ez a funkció gyorsabb és megbízhatóbb állapotszinkronizálást tesz lehetővé az IoT-rendszerekben.

A következő szakaszok az MQTT-közvetítő által támogatott funkciók és az MQTT v5 specifikációi közötti aktuális különbségeket ismertetik. A QoS 2 nem támogatott.

További információ az MQTT-közvetítőről és az aktuális korlátozásokról.

Közzétételi-feliratkozási üzenetkezelési modell

A közzétételre feliratkozó üzenetkezelési modell skálázható és aszinkron kommunikációt biztosít az ügyfelekkel. Lehetővé teszi, hogy az ügyfelek kiterheljék a szolgáltatáshoz kapcsolódó nagyszámú kapcsolat és üzenet kezelésének terhét. A közzététel-feliratkozás üzenetkezelési modell segítségével az ügyfelek hatékonyan kommunikálhatnak az egy-a-többhöz, a több-az-egyhez és az egy-az-egyhez üzenetküldési mintákkal:

  • Egy-a-többhöz: Lehetővé teszi az ügyfelek számára, hogy csak egy üzenetet tegyenek közzé, amelyet a szolgáltatás replikál minden érdeklődő ügyfél számára.
  • Több az egyhez: Lehetővé teszi, hogy az ügyfelek áthárítsák az MQTT-közvetítőhöz való magas számú kapcsolatok kezelésének terhét.
  • Egy-az-egyhez: Lehetővé teszi, hogy bármely ügyfél korlátozás nélkül kommunikáljon más ügyféllel, függetlenül az ügyfelek szerepkörétől.

Namespace

Az Event Grid-névtér az MQTT-közvetítő funkciót támogató erőforrások felügyeleti tárolója, valamint a lekéréses kézbesítési funkciót támogató erőforrások számára. Az MQTT-ügyfél csatlakozhat az MQTT-közvetítőhöz, és közzéteheti az üzenetekre való feliratkozást. Az MQTT-közvetítő hitelesíti ügyfeleit, engedélyezi a közzétételi-feliratkozási kérelmeket, és üzeneteket továbbít az érdeklődő ügyfeleknek. További információ a névtér fogalmáról.

Ügyfelek

Az ügyfelek olyan IoT-eszközökre vagy alkalmazásokra hivatkoznak, amelyek MQTT-üzeneteket tesznek közzé és iratkoznak fel.

Az IoT-eszközök olyan fizikai objektumok, amelyek az internethez csatlakoznak a telemetriai adatok továbbításához és a parancsok fogadásához. Ezek az eszközök érzékelők, berendezések, gépek vagy más, beágyazott érzékelőkkel és szoftverekkel felszerelt objektumok. Az érzékelők és a szoftverek lehetővé teszik számukra, hogy kommunikáljanak és kommunikáljanak egymással és a környezettel. Az IoT-eszközök értéke abban rejlik, hogy valós idejű adatokat és megállapításokat tudnak nyújtani, ami lehetővé teszi a vállalkozások és az egyének számára, hogy megalapozott döntéseket hozzanak, és javítsák a hatékonyságot és a termelékenységet.

Az IoT-alkalmazások IoT-eszközök adatainak kezeléséhez és feldolgozásához tervezett szoftverek. Ezek általában olyan összetevőket tartalmaznak, mint az adatgyűjtés, a feldolgozás, a tárolás, a vizualizáció és az elemzés. Ezek az alkalmazások lehetővé teszik a felhasználók számára a csatlakoztatott eszközök monitorozását és vezérlését, a feladatok automatizálását és az IoT-eszközök által létrehozott adatok elemzését.

Ügyfél-hitelesítés

Az Event Grid rendelkezik egy ügyfélregisztrációs adatbázissal, amely a csatlakozáshoz engedélyezett ügyfelek adatait tárolja. Ahhoz, hogy az ügyfél csatlakozni tud, az ügyfélnek meg kell lennie egy bejegyzésnek az ügyfélregisztrációs adatbázisban. Amikor egy ügyfél csatlakozik az MQTT-közvetítőhöz, az identitásjegyzékben tárolt hitelesítő adatok alapján hitelesítenie kell az MQTT-közvetítővel. Az MQTT-közvetítő a következő ügyfél-hitelesítési mechanizmusokat támogatja:

Hozzáférés-vezérlés

A hozzáférés-vezérlés kritikus fontosságú az IoT-forgatókönyvek esetében, figyelembe véve az IoT-környezetek hatalmas méreteit és a korlátozott eszközök egyedi biztonsági kihívásait. Az Event Grid egy rugalmas hozzáférés-vezérlési modellen keresztül biztosítja a szerepköralapú hozzáférés-vezérlést, amellyel kezelheti az ügyfelek engedélyeit a témakörök közzétételére vagy feliratkozására.

Az IoT-környezetek hatalmas mérete miatt az egyes ügyfelek engedélyeinek hozzárendelése az egyes témakörökhöz hihetetlenül fárasztó. Az Event Grid rugalmas hozzáférés-vezérlése az ügyfelek és témakörök ügyfélcsoportokba és témakörterekbe való csoportosításával oldja meg ezt a skálázási kihívást. Miután létrehozta az ügyfélcsoportokat és a témakörtereket, konfigurálhat egy engedélykötést, hogy hozzáférést biztosítson egy ügyfélcsoportnak a témakörtér közzétételéhez vagy előfizetéséhez.

Az Event Grid MQTT-közvetítő hozzáférés-vezérlési modelljét bemutató ábra.

A témakörterek részletes hozzáférés-vezérlést is biztosítanak, lehetővé téve az ügyfélcsoporton belüli egyes ügyfelek engedélyezését, hogy közzétehessék vagy előfizethessenek a saját témakörére. Ez a részletes hozzáférés-vezérlés a témakörsablonok változóinak használatával érhető el. További információ a hozzáférés-vezérlésről.

Útválasztás

Az Event Grid segítségével az MQTT-üzeneteket átirányíthatja az Azure-szolgáltatásokba vagy webhookokhoz további feldolgozás céljából. Ennek megfelelően az IoT-adatok használatával végpontok közötti megoldásokat hozhat létre adatelemzéshez, tároláshoz, vizualizációkhoz és más felhasználási esetekhez. Az útválasztási konfiguráció használatával ügyfelei MQTT-üzeneteit elküldheti egy Event Grid névtértémaként vagy egy egyedi Event Grid témához. Miután az üzenetek a témakörbe kerülnek, konfigurálhat egy esemény-előfizetést a témakörből származó üzenetek felhasználására. Ezzel a funkcióval például az Event Grid használatával átirányíthatja a telemetriát az IoT-eszközökről az Event Hubsba, majd az Azure Stream Analyticsbe az eszköz telemetriai adatainak elemzéséhez. További információ az útválasztásról.

Az MQTT-üzenetek útválasztását bemutató ábra az Event Gridben.

MQTT-események a Microsoft Fabric eseménystreamjeibe

MQTT-üzeneteket és felhőeseményeket irányíthat egy Event Grid-névtérből a Microsoft Fabric eseménystreamjeire az IoT-adatok valós idejű elemzése, tárolása és vizualizációja érdekében.

Az MQTT-események Microsoft Fabricbe való átirányítását bemutató ábra.

Edge MQTT-közvetítő integrációja

Az Event Grid integrálható az Azure IoT műveletek szolgáltatással, hogy áthidalja az MQTT-közvetítő képességeit a peremhálózaton az Event Grid MQTT-közvetítő szolgáltatással a felhőben. Az Azure IoT műveletek egy új elosztott MQTT-közvetítőt biztosít a peremhálózati számítástechnikához, amely Azure Arc-kompatibilis Kubernetes-fürtökön fut. A rendszer által hozzárendelt felügyelt identitással csatlakozhat az Event Grid MQTT-közvetítőhöz Microsoft Entra ID-hitelesítéssel, ami leegyszerűsíti a hitelesítő adatok kezelését. Az MQTT-közvetítő magas rendelkezésre állást, méretezhetőséget és biztonságot biztosít az IoT-eszközök és -alkalmazások számára. További információ az Azure IoT műveletek MQTT-közvetítőnek az Event Grid MQTT-közvetítőhöz való csatlakoztatásáról.

MQTT-ügyfél életciklus-eseményei

Az ügyfél életciklus-eseményei lehetővé teszik, hogy az alkalmazások reagáljanak az ügyfélkapcsolat állapotával vagy az ügyfélerőforrás-műveletekkel kapcsolatos eseményekre. Nyomon követheti az ügyfél kapcsolati állapotát, reagálhat az ügyfelek leválasztására vonatkozó kockázatcsökkentési művelettel, és nyomon követheti azt a névteret, amelyhez az ügyfelek az automatizált feladatátvétel során csatlakoznak. További információ az MQTT-ügyfél életciklus-eseményeiről.

Egyéni tartománynevek

Az egyéni tartománynevek támogatása lehetővé teszi, hogy a felhasználók saját tartományneveket rendeljenek az Event Grid-névtér MQTT- és HTTP-végpontjaihoz, ami növeli a biztonságot, és leegyszerűsíti az ügyfélkonfigurációt. Ez a funkció segít a vállalatoknak megfelelni a biztonsági és megfelelőségi követelményeknek, és nem szükséges módosítani a tartományhoz már csatolt ügyfeleket. Ha egyéni tartománynevet rendel több névtérhez, az segíthet a rendelkezésre állás növelésében, a kapacitás kezelésében és a régiók közötti ügyfél-mobilitás kezelésében. További információ az egyéni tartománynevekről.

MQTT-megtartás

Az MQTT által megőrzött üzenet egy témakör utolsó ismert jó értékének tárolására szolgál a közvetítőn, biztosítva, hogy az új előfizetők azonnal megkapják a legújabb üzenetet anélkül, hogy a következő közzétételre várnak. Ez a funkció különösen hasznos olyan helyzetekben, mint az eszközállapot-jelentés, a vezérlőjelek vagy a konfigurációs adatok, ahol a legújabb üzenetnek mindig elérhetőnek kell lennie az ügyfelek számára a csatlakozáskor. További információkért lásd: MQTT Retain támogatás az Azure Event Grid-ben.

HTTP-közzététel

A HTTP-közzététel lehetővé teszi az alkalmazások számára, hogy MQTT-üzeneteket tegyenek közzé az Event Grid MQTT-közvetítőn egy egyszerű HTTPS-kérésen POST keresztül, aktív MQTT-munkamenet fenntartása nélkül. Leginkább olyan helyzetekhez ideális, amikor az MQTT-ügyfelek nem megvalósíthatók vagy szükségesek, például kiszolgáló nélküli függvények, felhőszolgáltatások vagy háttéralkalmazások. A HTTP-közzététel lehetővé teszi, hogy az eseményvezérelt architektúrák megbízhatóan és biztonságosan injektálják az MQTT-üzeneteket. A gyakori használati esetek közé tartozik az eszközparancsok, riasztások vagy vezérlőjelek közzététele az Azure Functionsből, az Azure Logic Appsből vagy az API-integrációkból. További információ: MQTT-üzenetek HTTP-közzététele az Azure Event Gridben.

Megosztott előfizetések

Az MQTT megosztott előfizetései lehetővé teszik több ügyfél számára, hogy egy témakör-előfizetésből származó üzeneteket csoportosan használjanak fel, így a közvetítő elosztott terheléselosztással oszthatja meg az üzeneteket közöttük. Ahelyett, hogy minden előfizető minden üzenetet kap, minden üzenet csak egy ügyfélnek érkezik a csoporton belül.

Ez a minta az alábbi esetekben hasznos:

  • Háttérfeldolgozás skálázása: A számítási feladatok elosztása több fogyasztói példány között.
  • Az átviteli sebesség javítása: Az üzenetek párhuzamos feldolgozása duplikáció nélkül.
  • Magas rendelkezésre állás biztosítása: A feldolgozás folytonosságának fenntartása akkor is, ha az egyes ügyfelek meghibásodnak.

A gyakori forgatókönyvek közé tartozik a telemetriai feldolgozás, a rendeléskezelés és az eseményvezérelt mikroszolgáltatások. Az MQTT Broker Azure Event Grid megosztott előfizetések segítenek rugalmas, horizontálisan skálázható fogyasztói alkalmazások létrehozásában anélkül, hogy összetett egyéni terheléselosztási logikára van szükség.

Előfizetés-azonosítók (előzetes verzió)

Az MQTT 5 előfizetés-azonosítói megkönnyítik az ügyfelek számára, hogy minden előfizetést egyedi numerikus azonosítóval címkézhessenek meg, így könnyen azonosíthatják, hogy melyik előfizetésnek felel meg egy fogadott üzenet. Ha egy ügyfél több témakörre – különösen átfedésben lévő szűrőkkel – iratkozik fel, a közvetítő minden egyező üzenetben tartalmazza a társított előfizetés-azonosítót.

Ez a funkció leegyszerűsíti az ügyféloldali feldolgozást a következőkkel:

  • Az összetett témakörmegfelelő logika kiküszöbölése az ügyféloldalon.
  • Egyszerűbbé teheti az üzenetek útválasztását, szűrését és feldolgozását.
  • Egyértelmű kontextust biztosít, ha egyetlen ügyfél több adatfolyamot kezel.

Az Azure Event Grid MQTT Brokerben az előfizetés-azonosítók hasznosak hatékony, méretezhető alkalmazások létrehozásához, ahol az ügyfeleknek meg kell különböztetni az üzeneteket a különböző előfizetésektől.

Alapelvek

További információ az Event Grid MQTT-közvetítőjének fogalmairól:

További információ az MQTT-közvetítőről és annak fő fogalmairól: