Overzicht van de MQTT-brokerfunctie in Azure Event Grid

Met Azure Event Grid kunnen uw MQTT-clients met elkaar en met Azure-services communiceren om uw IoT-oplossingen (Internet of Things) te ondersteunen.

Met de MQTT-brokerfunctie van Azure Event Grid kunt u de volgende scenario's uitvoeren:

  • Telemetrie opnemen met behulp van een veel-op-een-berichtenpatroon. Met dit patroon kan de toepassing de last van het beheer van het grote aantal verbindingen met apparaten met Event Grid offloaden.
  • Beheer uw MQTT-clients met behulp van het berichtpatroon aanvraag-antwoord (een-op-een). Met dit patroon kan elke client zonder beperkingen communiceren met een andere client, ongeacht de rollen van de clients.
  • Verzend waarschuwingen naar een vloot van clients met behulp van het één-op-veel-berichtenpatroon. Met dit patroon kan de toepassing slechts één bericht publiceren dat de service repliceert voor elke geïnteresseerde client.
  • Integreer gegevens van uw MQTT-clients door MQTT-berichten te routeren naar Azure-services en webhooks via de http-pushleveringsfunctionaliteit. Met deze integratie met Azure-services kunt u gegevenspijplijnen bouwen die beginnen met gegevensopname van uw IoT-apparaten.

U vindt codevoorbeelden die deze scenario's in deze opslagplaats demonstreren.

De MQTT-broker is ideaal voor de implementatie van auto- en mobiliteitsscenario's, onder andere. Zie de referentiearchitectuur voor meer informatie over het bouwen van veilige en schaalbare oplossingen voor het verbinden van miljoenen voertuigen met de cloud, met behulp van de berichten- en gegevensanalyseservices van Azure.

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

Belangrijke concepten

Hier volgt een lijst met belangrijke concepten die betrokken zijn bij de MQTT-brokerfunctie van Azure Event Grid.

MQTT

MQTT is een berichtentransportprotocol voor publiceren-abonneren dat is ontworpen voor beperkte omgevingen. Dit is de standaard voor communicatie voor IoT-scenario's vanwege efficiëntie, schaalbaarheid en betrouwbaarheid. Met MQTT Broker kunnen clients berichten publiceren en abonneren op berichten via MQTT v3.1.1, MQTT v3.1.1 via WebSockets, MQTT v5 en MQTT v5 via WebSockets-protocollen. In de volgende lijst ziet u enkele van de belangrijkste kenmerken van MQTT-broker:

  • MQTT v5-functies:

    • Met gebruikerseigenschappen kunt u aangepaste sleutel-waardeparen toevoegen in de berichtkop om meer context over het bericht te bieden. Neem bijvoorbeeld het doel of de oorsprong van het bericht op, zodat de ontvanger het bericht efficiënt kan verwerken.
    • Met het patroon Aanvraag-antwoord kunnen uw clients profiteren van het asynchrone standaard asynchrone patroon voor aanvraagantwoorden, waarbij het antwoordonderwerp en de correlatie-id worden opgegeven in de aanvraag voor de client om te reageren zonder eerdere configuratie.
    • Met het interval voor het verlopen van berichten kunt u declareren naar MQTT-broker wanneer u een bericht negeert dat niet meer relevant of geldig is. Negeer bijvoorbeeld verouderde opdrachten of waarschuwingen.
    • Met onderwerpaliassen kunnen uw klanten de grootte van het onderwerpveld verkleinen, waardoor de gegevensoverdracht minder duur is.
    • Met de maximale berichtgrootte kunnen uw clients de maximale berichtgrootte beheren die ze van de server kunnen verwerken.
    • Met Receive Maximum kunnen uw clients de berichtsnelheid bepalen, afhankelijk van hun mogelijkheden, zoals verwerkingssnelheid of opslagmogelijkheden.
    • Met schone start en sessieverloop kunnen uw clients de betrouwbaarheid en beveiliging van de sessie optimaliseren door de abonnementsgegevens en berichten van de client te behouden voor een configureerbaar tijdsinterval.
    • Met negatieve bevestigingen kunnen uw klanten efficiënt reageren op verschillende foutcodes.
    • Met door de server verzonden verbroken pakketten kunnen uw clients de verbinding efficiënt afhandelen.
  • MQTT Broker voegt in de toekomst meer MQTT v5-functies toe om meer uit te lijnen met de MQTT-specificaties. In de volgende items worden de huidige verschillen beschreven tussen functies die worden ondersteund door MQTT Broker en de MQTT v5-specificaties: Will message, Retain flag, Message ordering en QoS 2 worden niet ondersteund.

  • MQTT v3.1.1-functies:

    • Permanente sessies zorgen voor betrouwbaarheid door de abonnementsgegevens en berichten van de client te behouden wanneer een client de verbinding verbreekt.
    • QoS 0 en 1 bieden uw klanten controle over de efficiëntie en betrouwbaarheid van de communicatie.
  • MQTT Broker voegt in de toekomst meer MQTT v3.1.1-functies toe om meer af te stemmen op de MQTT-specificaties. In de volgende items worden de huidige verschillen beschreven tussen functies die worden ondersteund door MQTT Broker en de MQTT v3.1.1-specificatie: Will message, Retain flag, Message ordering and QoS 2 are not supported.

Meer informatie over de MQTT-broker en de huidige beperkingen.

Berichtmodel publiceren-abonneren

Het berichtenmodel publish-subscribe biedt een schaalbare en asynchrone communicatie naar clients. Hiermee kunnen clients de last van het verwerken van een groot aantal verbindingen en berichten naar de service offloaden. Via het berichtenmodel Publish-Subscribe kunnen uw klanten efficiënt communiceren met behulp van een-op-veel-op-een- en een-op-een-berichtpatronen.

  • Met het een-op-veel-berichtenpatroon kunnen clients slechts één bericht publiceren dat de service repliceert voor elke geïnteresseerde client.
  • Met het veel-op-een-berichtenpatroon kunnen clients de last van het beheer van het grote aantal verbindingen met MQTT Broker offloaden.
  • Met het een-op-een-berichtpatroon kan elke client zonder beperkingen communiceren met een andere client, ongeacht de rollen van de clients.

Naamruimte

Event Grid-naamruimte is een beheercontainer voor de resources die de MQTT-brokerfunctionaliteit ondersteunen, samen met de resources die de functionaliteit voor pull-levering ondersteunen. Uw MQTT-client kan verbinding maken met MQTT-broker en berichten publiceren/abonneren op berichten, terwijl MQTT-broker uw clients verifieert, aanvragen voor publiceren/abonneren autoriseert en berichten doorstuurt naar geïnteresseerde clients. Meer informatie over het concept van de naamruimte.

Clients

Clients verwijzen naar IoT-apparaten of -toepassingen die MQTT-berichten publiceren en abonneren.

IoT-apparaten zijn fysieke objecten die zijn verbonden met internet om telemetrie te verzenden en opdrachten te ontvangen. Deze apparaten kunnen sensoren, apparaten, machines of andere objecten zijn die zijn uitgerust met ingesloten sensoren en software. Met de sensoren en software kunnen ze communiceren en met elkaar communiceren en de omgeving eromheen. De waarde van IoT-apparaten ligt in hun vermogen om realtime gegevens en inzichten te bieden, zodat bedrijven en personen weloverwogen beslissingen kunnen nemen en de efficiëntie en productiviteit kunnen verbeteren.

IoT-toepassingen zijn software die is ontworpen om te communiceren met en gegevens van IoT-apparaten te verwerken. Ze omvatten doorgaans onderdelen zoals gegevensverzameling, verwerking, opslag, visualisatie en analyse. Met deze toepassingen kunnen gebruikers verbonden apparaten bewaken en beheren, taken automatiseren en inzicht krijgen in de gegevens die zijn gegenereerd door IoT-apparaten.

Clientverificatie

Event Grid heeft een clientregister waarin informatie wordt opgeslagen over de clients die hiermee verbinding mogen maken. Voordat een client verbinding kan maken, moet er een vermelding zijn voor die client in het clientregister. Als een client verbinding maakt met MQTT-broker, moet deze worden geverifieerd met MQTT-broker op basis van referenties die zijn opgeslagen in het identiteitsregister. MQTT Broker ondersteunt X.509-certificaatverificatie die de industrieverificatiestandaard is in IoT-apparaten en Microsoft Entra-id die de verificatiestandaard van Azure is voor toepassingen.Meer informatie over MQTT-clientverificatie.

Toegangsbeheer

Toegangsbeheer is essentieel voor IoT-scenario's die rekening houden met de enorme schaal van IoT-omgevingen en de unieke beveiligingsuitdagingen van beperkte apparaten. Event Grid levert op rollen gebaseerd toegangsbeheer (RBAC) via een flexibel toegangsbeheermodel waarmee u de autorisatie van clients kunt beheren voor het publiceren of abonneren op onderwerpen.

Gezien de enorme schaal van IoT-omgevingen, is het toewijzen van machtigingen voor elke client aan elk onderwerp ongelooflijk tijdrovend. Met het flexibele toegangsbeheer van Event Grid wordt deze schaaluitdaging aangepakt door clients en onderwerpen te groeperen in clientgroepen en onderwerpruimten. Nadat u clientgroepen en onderwerpruimten hebt gemaakt, kunt u een machtigingsbinding configureren om toegang te verlenen tot een clientgroep om een onderwerpruimte te publiceren of er een abonnement op te nemen.

Diagram of the access control model.

Onderwerpruimten bieden ook gedetailleerd toegangsbeheer doordat u de autorisatie van elke client binnen een clientgroep kunt beheren om een eigen onderwerp te publiceren of erop te abonneren. Dit gedetailleerde toegangsbeheer wordt bereikt met behulp van variabelen in onderwerpsjablonen. Meer informatie over toegangsbeheer.

Routering

Met Event Grid kunt u uw MQTT-berichten omleiden naar Azure-services of webhooks voor verdere verwerking. Daarom kunt u end-to-end-oplossingen bouwen met behulp van uw IoT-gegevens voor gegevensanalyse, opslag en visualisaties, onder andere gebruiksvoorbeelden. Met de routeringsconfiguratie kunt u al uw MQTT-berichten van uw clients verzenden naar een Event Grid-naamruimteonderwerp of een aangepast Event Grid-onderwerp. Zodra de berichten in het onderwerp staan, kunt u een gebeurtenisabonnement configureren om de berichten van het onderwerp te gebruiken. Met deze functionaliteit kunt u bijvoorbeeld Event Grid gebruiken om telemetrie van uw IoT-apparaten naar Event Hubs te routeren en vervolgens naar Azure Stream Analytics om inzicht te krijgen in uw apparaattelemetrie. Meer informatie over routering.

Diagram of the MQTT message routing.

Integratie van Edge MQTT-broker

Event Grid kan worden geïntegreerd met Azure IoT MQ om de MQTT-brokerfunctie aan de rand te overbrugmen met de MQTT-brokerfunctie van Azure Event Grid in de cloud. Azure IoT MQ is een nieuwe gedistribueerde MQTT-broker voor edge-computing, die wordt uitgevoerd op Kubernetes-clusters met Arc. Het kan verbinding maken met Event Grid MQTT Broker met Microsoft Entra ID-verificatie (voorheen Azure Active Directory) met behulp van door het systeem toegewezen beheerde identiteit, wat het beheer van referenties vereenvoudigt. Azure IoT MQ biedt hoge beschikbaarheid, schaalbaarheid en beveiliging voor uw IoT-apparaten en -toepassingen. Het is nu beschikbaar in openbare preview als onderdeel van Azure IoT Operations. Meer informatie over het verbinden van Azure IoT MQ met de MQTT-broker van Azure Event Grid.

Levenscyclus-gebeurtenissen van MQTT-clients

Met clientlevenscyclus-gebeurtenissen kunnen toepassingen reageren op gebeurtenissen over de clientverbindingsstatus of de clientresourcebewerkingen. Hiermee kunt u de verbindingsstatus van uw client bijhouden, reageren met een beperkingsactie voor verbroken clients en de naamruimte bijhouden waaraan uw clients zijn gekoppeld tijdens geautomatiseerde failovers. Meer informatie over levenscyclus-gebeurtenissen van MQTT-clients.

Volgende stappen

Gebruik de volgende artikelen voor meer informatie over de MQTT-broker en de belangrijkste concepten.

Concepten