Översikt över MQTT-koordinatorfunktionen i Azure Event Grid

Med Azure Event Grid kan dina MQTT-klienter kommunicera med varandra och med Azure-tjänster för att stödja dina IoT-lösningar (Internet of Things).

Med funktionen MQTT Broker i Azure Event Grid kan du utföra följande scenarier:

  • Mata in telemetri med hjälp av ett många-till-ett-meddelandemönster. Det här mönstret gör att programmet kan avlasta belastningen med att hantera det stora antalet anslutningar med enheter till Event Grid.
  • Kontrollera dina MQTT-klienter med hjälp av meddelandemönstret request-response (en-till-en). Det här mönstret gör det möjligt för alla klienter att kommunicera med andra klienter utan begränsningar, oavsett klienternas roller.
  • Skicka aviseringar till en flotta av klienter med hjälp av ett-till-många-meddelandemönstret. Med det här mönstret kan programmet bara publicera ett meddelande som tjänsten replikerar för varje intresserad klient.
  • Integrera data från dina MQTT-klienter genom att dirigera MQTT-meddelanden till Azure-tjänster och Webhooks via HTTP Push-leveransfunktionen. Med den här integreringen med Azure-tjänster kan du skapa datapipelines som börjar med datainmatning från dina IoT-enheter.

Du hittar kodexempel som visar dessa scenarier på den här lagringsplatsen.

MQTT-mäklaren är idealisk för implementering av fordons- och mobilitetsscenarier, bland annat. Se referensarkitekturen för att lära dig hur du skapar säkra och skalbara lösningar för att ansluta miljontals fordon till molnet med hjälp av Azures meddelande- och dataanalystjänster.

High-level diagram of Event Grid that shows bidirectional MQTT communication with publisher and subscriber clients.

Nyckelbegrepp

Följande är en lista över viktiga begrepp som ingår i Azure Event Grids MQTT-koordinatorfunktion.

MQTT

MQTT är ett transportprotokoll för meddelanden för publicering och prenumeration som har utformats för begränsade miljöer. Det är kommunikationsstandarden för IoT-scenarier på grund av effektivitet, skalbarhet och tillförlitlighet. MQTT-koordinator gör det möjligt för klienter att publicera och prenumerera på meddelanden via MQTT v3.1.1, MQTT v3.1.1 över WebSockets, MQTT v5 och MQTT v5 via WebSockets-protokoll. I följande lista visas några av funktionshöjdpunkterna i MQTT Broker:

  • MQTT v5-funktioner:

    • Med användaregenskaper kan du lägga till anpassade nyckel/värde-par i meddelandehuvudet för att ge mer kontext om meddelandet. Inkludera till exempel meddelandets syfte eller ursprung så att mottagaren kan hantera meddelandet effektivt.
    • Med mönstret för begärandesvar kan dina klienter dra nytta av det asynkrona standardmönstret för begärandesvar och ange svarsämnet och korrelations-ID:t i begäran om att klienten ska svara utan föregående konfiguration.
    • Med intervall för meddelandeförfallodatum kan du deklarera till MQTT-asynkron meddelandekö när du ska ignorera ett meddelande som inte längre är relevant eller giltigt. Ignorera till exempel inaktuella kommandon eller aviseringar.
    • Ämnesalias hjälper dina klienter att minska storleken på ämnesfältet, vilket gör dataöverföringen billigare.
    • Med den maximala meddelandestorleken kan dina klienter styra den maximala meddelandestorlek som de kan hantera från servern.
    • Med Ta emot maximalt kan dina klienter styra meddelandefrekvensen beroende på deras funktioner, till exempel bearbetningshastighet eller lagringsfunktioner.
    • Med en ren start- och sessionsförfallotid kan klienterna optimera tillförlitligheten och säkerheten för sessionen genom att bevara klientens prenumerationsinformation och meddelanden under ett konfigurerbart tidsintervall.
    • Negativa bekräftelser gör att dina klienter effektivt kan reagera på olika felkoder.
    • Server-skickade frånkopplingspaket gör att dina klienter effektivt kan hantera frånkopplingar.
  • MQTT Broker lägger till fler MQTT v5-funktioner i framtiden för att anpassa mer till MQTT-specifikationerna. Följande objekt beskriver de aktuella skillnaderna mellan funktioner som stöds av MQTT-asynkron meddelandekö och MQTT v5-specifikationerna: Meddelanden, Kvarhållningsflagga, Meddelandeordning och QoS 2 stöds inte.

  • MQTT v3.1.1-funktioner:

    • Beständiga sessioner säkerställer tillförlitligheten genom att bevara klientens prenumerationsinformation och meddelanden när en klient kopplas från.
    • QoS 0 och 1 ger dina klienter kontroll över effektiviteten och tillförlitligheten i kommunikationen.
  • MQTT Broker lägger till fler MQTT v3.1.1-funktioner i framtiden för att anpassa sig mer till MQTT-specifikationerna. Följande objekt beskriver de aktuella skillnaderna mellan funktioner som stöds av MQTT-asynkron meddelandekö och MQTT v3.1.1-specifikationen: Kommer meddelandet, kvarhållningsflaggan, meddelandeordningen och QoS 2 stöds inte.

Läs mer om MQTT-koordinatorn och aktuella begränsningar.

Publicera prenumerationsmeddelandemodell

Meddelandemodellen publish-subscribe ger en skalbar och asynkron kommunikation till klienter. Det gör det möjligt för klienter att avlasta belastningen med att hantera ett stort antal anslutningar och meddelanden till tjänsten. Via meddelandemodellen Publicera prenumeration kan dina klienter kommunicera effektivt med hjälp av ett-till-många-, många-till-en- och en-till-ett-meddelandemönster.

  • Med ett-till-många-meddelandemönstret kan klienter endast publicera ett meddelande som tjänsten replikerar för varje intresserad klient.
  • Med många-till-en-meddelandemönstret kan klienter avlasta bördan med att hantera det stora antalet anslutningar till MQTT-koordinatorn.
  • Mönstret för en-till-en-meddelanden gör det möjligt för alla klienter att kommunicera med andra klienter utan begränsningar, oavsett klienternas roller.

Namnområde

Event Grid-namnområdet är en hanteringscontainer för de resurser som stöder MQTT-koordinatorfunktionen, tillsammans med de resurser som stöder pull-leveransfunktionen. MQTT-klienten kan ansluta till MQTT-koordinatorn och publicera/prenumerera på meddelanden, medan MQTT-koordinator autentiserar dina klienter, auktoriserar publicerings-/prenumerationsförfrågningar och vidarebefordrar meddelanden till intresserade klienter. Läs mer om namnområdeskonceptet.

Klienter

Klienter refererar till IoT-enheter eller program som publicerar och prenumererar på MQTT-meddelanden.

IoT-enheter är fysiska objekt som är anslutna till Internet för att överföra telemetri och ta emot kommandon. Dessa enheter kan vara sensorer, apparater, maskiner eller andra objekt som är utrustade med inbäddade sensorer och programvara. Sensorerna och programvaran gör det möjligt för dem att kommunicera och interagera med varandra och miljön runt dem. Värdet av IoT-enheter ligger i deras förmåga att tillhandahålla realtidsdata och insikter, vilket gör det möjligt för företag och individer att fatta välgrundade beslut och förbättra effektiviteten och produktiviteten.

IoT-program är programvara som är utformad för att interagera med och bearbeta data från IoT-enheter. De omfattar vanligtvis komponenter som datainsamling, bearbetning, lagring, visualisering och analys. Dessa program gör det möjligt för användare att övervaka och kontrollera anslutna enheter, automatisera uppgifter och få insikter från de data som genereras av IoT-enheter.

Klientautentisering

Event Grid har ett klientregister som lagrar information om klienterna som tillåts ansluta till det. Innan en klient kan ansluta måste det finnas en post för klienten i klientregistret. När en klient ansluter till MQTT-koordinatorn måste den autentiseras med MQTT-koordinator baserat på autentiseringsuppgifter som lagras i identitetsregistret. MQTT Broker stöder X.509-certifikatautentisering som är branschautentiseringsstandarden i IoT-enheter och Microsoft Entra-ID som är Azures autentiseringsstandard för program.Läs mer om MQTT-klientautentisering.

Åtkomstkontroll

Åtkomstkontroll är avgörande för IoT-scenarier med tanke på den enorma omfattningen av IoT-miljöer och de unika säkerhetsutmaningarna för begränsade enheter. Event Grid levererar rollbaserad åtkomstkontroll (RBAC) via en flexibel åtkomstkontrollmodell som gör att du kan hantera auktoriseringen av klienter att publicera eller prenumerera på ämnen.

Med tanke på den enorma omfattningen av IoT-miljöer är det otroligt tråkigt att tilldela behörighet för varje klient till varje ämne. Event Grids flexibla åtkomstkontroll hanterar den här skalningsutmaningen genom att gruppera klienter och ämnen i klientgrupper och ämnesutrymmen. När du har skapat klientgrupper och ämnesutrymmen kan du konfigurera en behörighetsbindning för att ge åtkomst till en klientgrupp för att antingen publicera eller prenumerera på ett ämnesutrymme.

Diagram of the access control model.

Ämnesutrymmen ger också detaljerad åtkomstkontroll genom att du kan styra auktoriseringen av varje klient i en klientgrupp för att publicera eller prenumerera på ett eget ämne. Den här detaljerade åtkomstkontrollen uppnås med hjälp av variabler i ämnesmallar. Läs mer om åtkomstkontroll.

Routning

Med Event Grid kan du dirigera dina MQTT-meddelanden till Azure-tjänster eller webhooks för vidare bearbetning. Därför kan du skapa lösningar från slutpunkt till slutpunkt med hjälp av dina IoT-data för bland annat dataanalys, lagring och visualiseringar. Med routningskonfigurationen kan du skicka alla dina MQTT-meddelanden från dina klienter till antingen ett Event Grid-namnområdesämne eller ett anpassat Event Grid-ämne. När meddelandena finns i ämnet kan du konfigurera en händelseprenumeration för att använda meddelandena från ämnet. Med den här funktionen kan du till exempel använda Event Grid för att dirigera telemetri från dina IoT-enheter till Event Hubs och sedan till Azure Stream Analytics för att få insikter från enhetens telemetri. Läs mer om routning.

Diagram of the MQTT message routing.

Edge MQTT-koordinatorintegrering

Event Grid integreras med Azure IoT MQ för att överbrygga sin MQTT-mäklarfunktion på gränsen med Azure Event Grids MQTT-koordinatorfunktion i molnet. Azure IoT MQ är en ny distribuerad MQTT-koordinator för gränsberäkning som körs på Arc-aktiverade Kubernetes-kluster. Den kan ansluta till Event Grid MQTT-koordinator med Microsoft Entra ID-autentisering (tidigare Azure Active Directory) med hjälp av systemtilldelad hanterad identitet, vilket förenklar autentiseringshanteringen. Azure IoT MQ ger hög tillgänglighet, skalbarhet och säkerhet för dina IoT-enheter och -program. Den är nu tillgänglig i offentlig förhandsversion som en del av Azure IoT Operations. Läs mer om hur du ansluter Azure IoT MQ till Azure Event Grids MQTT-koordinator.

Livscykelhändelser för MQTT-klienter

Med händelser i klientlivscykeln kan program reagera på händelser om klientanslutningsstatus eller klientresursåtgärder. Det gör att du kan hålla reda på klientens anslutningsstatus, reagera med en åtgärd för att minska klientfrånkopplingar och spåra det namnområde som dina klienter är anslutna till under automatiserade redundansväxlingar. Läs mer om MQTT-klientens livscykelhändelser.

Nästa steg

Använd följande artiklar för att lära dig mer om MQTT-koordinatorn och dess huvudbegrepp.

Begrepp