Freigeben über


Übersicht über das MQTT Vermittler-Feature in Azure Event Grid

Azure-Ereignisraster ermöglicht es Ihren Message Queuing Telemetry Transport (MQTT)-Clients, miteinander und mit Azure-Diensten zu kommunizieren, um Ihre Internet of Things (IoT)-Lösungen zu unterstützen. Sie können die Ereignisraster-MQTT-Vermittlerfunktion für die folgenden Szenarien verwenden. Codebeispiele, die diese Szenarien demonstrieren, finden Sie in diesem Repository.

  • Erfassen Sie Telemetriedaten mit Hilfe eines Viele-zu-Eins-Nachrichtenmusters. Dieses Muster ermöglicht es der Anwendung, den Aufwand für die Verwaltung einer hohen Anzahl von Verbindungen mit Geräten an Event Grid auszulagern.
  • Steuern Sie Ihre MQTT-Clients, indem Sie das Anfrage-Antwort-Muster (eins-zu-eins) verwenden. Dieses Muster ermöglicht es jedem Client, unabhängig von den Rollen der Clients ohne Einschränkungen mit jedem anderen Client zu kommunizieren.
  • Senden Sie Alerts an eine Flotte von Clients, indem Sie das Eins-zu-Vielen-Nachrichtenmuster verwenden. Dieses Muster ermöglicht es der Anwendung, nur eine Nachricht zu veröffentlichen, die der Dienst für jeden interessierten Client repliziert.
  • Integrieren Sie Daten von Ihren MQTT-Clients, indem Sie MQTT-Nachrichten über die HTTP-Push-Funktion an Azure-Dienste und Webhooks weiterleiten. Sie können diesen Anschluss an Azure-Dienste nutzen, um Datenpipelines zu erstellen, die mit der Datenerfassung von Ihren IoT-Geräten beginnen.

Der MQTT-Vermittler eignet sich unter anderem ideal für die Implementierung von Szenarien in den Bereichen Automotive, Mobilität und Fertigung. Um zu erfahren, wie Sie sichere und skalierbare Lösungen für die Verbindung von Millionen von MQTT-Clients mit der Cloud mithilfe der Azure Messaging- und Datenanalysedienste erstellen können, lesen Sie die Referenzarchitekturen automotive und manufacturing.

Übersicht: Event Grid mit bidirektionaler MQTT-Kommunikation mit Herausgeber- und Abonnentenclients.

Wichtige Begriffe

Die folgenden Schlüsselkonzepte sind im Ereignisraster-MQTT-Vermittlerfunktion enthalten.

MQTT

MQTT ist ein Veröffentlichungs-Abonnement-Messagingtransportprotokoll, das für eingeschränkte Umgebungen entwickelt wurde. Es ist ein beliebter Kommunikationsstandard für IoT-Szenarien aufgrund seiner Effizienz, Skalierbarkeit und Zuverlässigkeit. Der MQTT Vermittler ermöglicht Clients das Veröffentlichen und Abonnieren von Nachrichten über MQTT v3.1.1, MQTT v3.1.1 über WebSocket, MQTT v5 und MQTT v5 über WebSocket. Die folgende Liste enthält einige der wichtigsten Funktionen des MQTT-Vermittlers:

  • MQTT v5-Features:

    • Letzter Wille und Testament: Benachrichtigt Ihre MQTT-Clients über die abrupten Verbindungsabbrüche bei anderen MQTT-Clients. Sie können dieses Feature verwenden, um einen vorhersehbaren und zuverlässigen Flow der Kommunikation zwischen MQTT-Clients bei unerwarteten Verbindungsunterbrechungen zu gewährleisten.
    • Benutzereigenschaften: Ermöglicht es Ihnen, benutzerdefinierte Schlüssel/Wertpaare in die Kopfzeile der Nachricht einzufügen, um mehr Kontext über die Nachricht bereitzustellen. Geben Sie zum Beispiel den Zweck oder die Herkunft der Nachricht an, damit der Empfänger die Nachricht effizient bearbeiten kann.
    • Anfrage-Antwort-Muster: Ermöglicht es Ihren Clients, die Vorteile des asynchronen Standardmusters Anfrage-Antwort zu nutzen, indem das Antwortthema und die Korrelations-ID in der Anfrage angegeben werden, damit der Client ohne vorherige Konfiguration antworten kann.
    • Ablaufintervall der Nachricht: Ermöglicht es Ihnen, dem MQTT Vermittler mitzuteilen, wann eine Nachricht, die nicht mehr relevant oder gültig ist, ignoriert werden soll. Beispiele sind das Ignorieren veralteter Befehle oder Warnungen.
    • Themen-Aliase: Hilft Ihren Kunden, die Größe des Themenfeldes zu reduzieren, was die Datenübertragung kostengünstiger macht.
    • Maximale Nachrichtengröße: Ermöglicht Ihren Clients die Kontrolle über die maximale Nachrichtengröße, die sie vom Server verarbeiten können.
    • Empfang maximal: Ermöglicht es Ihren Clients, die Nachrichtenrate je nach ihren Kapazitäten, wie Verarbeitungsgeschwindigkeit oder Speicherkapazität, zu kontrollieren.
    • Sauberer Start und Ablauf der Sitzung: Ermöglicht Ihren Clients, die Zuverlässigkeit und Sicherheit der Sitzung zu optimieren, indem die Abonnementinformationen und Nachrichten des Clients für ein konfigurierbares Zeitintervall erhalten bleiben.
    • Negative Bestätigungen: Ermöglicht es Ihren Clients, effizient auf verschiedene Fehlercodes zu reagieren.
    • Vom Server gesendete Verbindungsunterbrechungspakete: Ermöglicht es Ihren Clients, Verbindungsabbrüche effizient zu handhaben.
    • MQTT Beibehalten: Sorgt dafür, dass der Vermittler die zuletzt veröffentlichte Nachricht zu einem Thema speichert und sie automatisch an alle neuen Abonnenten zustellt. Dank diesem Feature können Geräte sofort den neuesten bekannten Status erhalten, ohne auf das nächste Update warten zu müssen. Diese Funktion ermöglicht eine schnellere und zuverlässigere Zustandssynchronisierung zwischen IoT-Systemen.
  • Features von MQTT v3.1.1:

    • Letzter Wille und Testament: Benachrichtigt Ihre MQTT-Clients über die abrupten Verbindungsabbrüche bei anderen MQTT-Clients. Sie können dieses Feature verwenden, um einen vorhersehbaren und zuverlässigen Flow der Kommunikation zwischen MQTT-Clients bei unerwarteten Verbindungsunterbrechungen zu gewährleisten.
    • Dauerhafte Sitzungen: Sorgt für Zuverlässigkeit, indem die Abonnementinformationen und Nachrichten des Clients erhalten bleiben, wenn ein Client die Verbindung trennt.
    • Quality of Service (QoS) 0 und 1: Bietet Ihren Kunden die Kontrolle über die Effizienz und Zuverlässigkeit der Kommunikation.
    • MQTT Beibehalten: Sorgt dafür, dass der Vermittler die zuletzt veröffentlichte Nachricht zu einem Thema speichert und sie automatisch an alle neuen Abonnenten zustellt. Dank diesem Feature können Geräte sofort den neuesten bekannten Status erhalten, ohne auf das nächste Update warten zu müssen. Diese Funktion ermöglicht eine schnellere und zuverlässigere Zustandssynchronisierung zwischen IoT-Systemen.

In den folgenden Abschnitten werden die aktuellen Unterschiede zwischen den vom MQTT Vermittler unterstützten Funktionen und den MQTT v5-Spezifikationen beschrieben. QoS 2 wird nicht unterstützt.

Erfahren Sie mehr über den MQTT Vermittler und die aktuellen Einschränkungen.

Publish-Subscribe-Nachrichtenmodell

Das Veröffentlichen/Abonnieren-Messagingmodell bietet skalierbare und asynchrone Kommunikation mit Clients. Dadurch können Clients den Aufwand für die Verarbeitung einer hohen Anzahl von Verbindungen und Nachrichten an den Dienst auslagern. Durch das Publish-Subscribe-Nachrichtenmodell können Ihre Clients effizient kommunizieren, indem sie Eins-zu-Vielen-, Viele-zu-Eins- und Eins-zu-Eins-Nachrichtenmuster verwenden:

  • Eins-zu-Vielen: Ermöglicht es Kunden, nur eine Nachricht zu veröffentlichen, die vom Dienst für jeden interessierten Kunden repliziert wird.
  • Viele-zu-eins: Ermöglicht es den Clients, die Last der Verwaltung einer großen Anzahl von Verbindungen zum MQTT Vermittler loszuwerden.
  • Eins-zu-eins: Ermöglicht es jedem Client, mit jedem anderen Client ohne Einschränkungen zu kommunizieren, unabhängig von der Rolle der Clients.

Namespace

Bei einem Ereignisraster-Namensraum handelt es sich um einen Verwaltungscontainer für die Ressourcen, die die MQTT Vermittlerfunktionalität unterstützen, zusammen mit den Ressourcen, die die Pull-Delivery-Funktionalität unterstützen. Ihr MQTT-Client kann sich mit dem MQTT Vermittler verbinden und Nachrichten veröffentlichen und abonnieren. Der MQTT Vermittler authentifiziert Ihre Clients, autorisiert Publish-Subscribe-Anfragen und leitet Nachrichten an interessierte Clients weiter. Erfahren Sie mehr über das Namensraum-Konzept.

Kunden

Clients beziehen sich auf IoT-Geräte oder -Anwendungen, die MQTT-Nachrichten veröffentlichen und abonnieren.

IoT-Geräte sind physische Objekte, die mit dem Internet verbunden sind, um Telemetriedaten zu übertragen und Befehle zu empfangen. Diese Geräte sind Sensoren, Geräte, Maschinen oder andere Objekte, die mit eingebetteten Sensoren und Software ausgestattet sind. Die Sensoren und sie Software ermöglichen es ihnen, miteinander und mit der jeweiligen Umgebung zu kommunizieren und zu interagieren. Der Wert von IoT-Geräten liegt in ihrer Fähigkeit, Daten und Erkenntnisse in Echtzeit zu liefern, die es Unternehmen und Einzelpersonen ermöglichen, fundierte Entscheidungen zu treffen und die Effizienz und Produktivität zu verbessern.

IoT-Anwendungen stellen Software dar, die für die Interaktion mit und Verarbeitung von Daten von IoT-Geräten entwickelt wurde. Dies umfasst in der Regel Komponenten wie Datenerfassung, -verarbeitung, -speicherung, -visualisierung und -analyse. Mit diesen Anwendungen können Benutzer verbundene Geräte überwachen und steuern, Aufgaben automatisieren und Erkenntnisse aus den von IoT-Geräten generierten Daten gewinnen.

Clientauthentifizierung

Event Grid verfügt über eine Clientregistrierung, die Informationen zu den Clients speichert, die eine Verbindung mit ihr herstellen dürfen. Bevor ein Client eine Verbindung herstellen kann, muss in der Clientregistrierung ein Eintrag für diesen Client vorhanden sein. Wenn sich ein Client mit dem MQTT Vermittler verbindet, muss er sich anhand der in der Identitätsregistrierung gespeicherten Anmeldedaten beim MQTT Vermitteler authentifizieren. Der MQTT Vermittler unterstützt die folgenden Client-Authentifizierungsmechanismen:

Zugriffssteuerung

Zugriffssteuerung ist für IoT-Szenarien angesichts des enormen Umfangs von IoT-Umgebungen und der einzigartigen Sicherheitsanforderungen eingeschränkter Geräte von entscheidender Bedeutung. Das Ereignisraster bietet eine rollenbasierte Zugriffskontrolle über ein flexibles Zugriffskontrollmodell, mit dem Sie die Berechtigung von Clients zur Veröffentlichung oder zum Abonnieren von Themen verwalten können.

Angesichts des enormen Umfangs von IoT-Umgebungen ist die Zuweisung von Berechtigungen für jeden Client zu jedem Thema unglaublich mühsam. Die flexible Zugriffskontrolle des Ereignisrasters bewältigt diese Herausforderung durch die Gruppierung von Clients und Themen in Client-Gruppen und Themenbereiche. Nachdem Sie Client-Gruppen und Themenbereiche erstellt haben, können Sie eine Berechtigungsbindung konfigurieren, um einer Client-Gruppe den Zugriff auf einen Themenbereich zu gewähren, um diesen entweder zu veröffentlichen oder zu abonnieren.

Diagramm, auf dem das Zugriffskontrollmodell des Ereignisrasters MQTT Vermittlers zu sehen ist.

Themenbereiche bieten auch präzise Zugriffssteuerung, indem Sie die Autorisierung jedes Clients innerhalb einer Clientgruppe steuern können, um ein eigenes Thema zu veröffentlichen oder zu abonnieren. Diese differenzierte Zugriffssteuerung wird durch die Verwendung von Variablen in Themenvorlagen erreicht. Weitere Informationen zur Zugriffssteuerung.

Routenplanung

Mit dem Ereignisraster können Sie Ihre MQTT-Nachrichten zur weiteren Verarbeitung an Azure-Dienste oder Webhooks weiterleiten. Dementsprechend können Sie End-to-End-Lösungen erstellen, indem Sie Ihre IoT-Daten unter anderem für Datenanalysen, Speicherung und Visualisierungen verwenden. Mithilfe der Routing-Konfiguration können Sie alle MQTT-Nachrichten von Ihren Clients entweder an ein Ereignisraster-Namensraum-Thema oder an ein benutzerdefiniertes Ereignisraster-Thema senden. Nachdem die Nachrichten im Thema sind, können Sie ein Ereignisabonnement konfigurieren, um die Nachrichten aus dem Thema zu konsumieren. Mit dieser Funktionalität können Sie zum Beispiel das Ereignisraster verwenden, um Telemetriedaten von Ihren IoT-Geräten an Event Hubs und dann an Azure Stream Analytics weiterzuleiten, um Erkenntnisse aus Ihren Gerätetelemetriedaten zu gewinnen. Weitere Informationen zu Routing.

Diagramm, das die Weiterleitung von MQTT-Nachrichten im Ereignisraster zeigt.

MQTT-Ereignisse für Microsoft Fabric-Eventstreams

Leiten Sie MQTT-Nachrichten und Cloud-Ereignisse von einem Ereignisraster-Namensraum zu Microsoft Fabric-Ereignisströmen für Echtzeit-Analysen, Speicherung und Visualisierung von IoT-Daten.

Diagramm, auf dem zu sehen ist, wie MQTT-Ereignisse an Microsoft Fabric weitergeleitet werden.

Integration des Edge-MQTT-Brokers

Das Ereignisraster lässt sich in Azure IoT Operations integrieren, um seine MQTT Vermittlerfunktion am Edge mit der Ereignisraster MQTT-Brokerfunktion in der Cloud zu verbinden. Azure IoT Operations bietet einen neuen verteilten MQTT-Broker für Edge Computing, der auf Azure Arc-aktivierten Kubernetes-Clustern läuft. Es kann eine Verbindung zum Ereignisraster MQTT Vermittler mit Microsoft Entra ID-Authentifizierung herstellen, indem es die vom System zugewiesene verwaltete Identität verwendet, was die Verwaltung der Anmeldeinformationen vereinfacht. Der MQTT Vermittler bietet hohe Verfügbarkeit, Skalierbarkeit und Sicherheit für Ihre IoT-Geräte und Anwendungen. Erfahren Sie mehr über , um den Azure IoT Operations MQTT Broker mit dem Ereignisraster MQTT Vermittler zu verbinden.

MQTT-Client-Ereignisse im Lebenszyklus

Ereignisse im Client-Lebenszyklus ermöglichen es Anwendungen, auf Ereignisse im Zusammenhang mit dem Client-Verbindungsstatus oder den Client-Ressourcenoperationen zu reagieren. Sie können den Verbindungsstatus Ihrer Clients verfolgen, mit einer Abhilfemaßnahme auf Verbindungsabbrüche von Clients reagieren und den Namensraum verfolgen, mit dem Ihre Clients bei automatischen Failovers verbunden sind. Weiter Informationen zu MQTT-Client-Ereignissen im Lebenszyklus.

Benutzerdefinierte Domänennamen

Die Unterstützung von benutzerdefinierten Domänennamen ermöglicht es Benutzern, den MQTT- und HTTP-Endpunkten des Ereignisraster-Namensraums ihre eigenen Domänennamen zuzuweisen, was die Sicherheit erhöht und die Client-Konfiguration vereinfacht. Dieses Feature hilft Unternehmen dabei, ihre Sicherheits- und Complianceanforderungen zu erfüllen und die Notwendigkeit zu vermeiden, bereits mit der Domäne verknüpfte Clients zu ändern. Das Zuweisen eines benutzerdefinierten Domänennamens zu mehreren Namespaces kann auch dazu beitragen, die Verfügbarkeit zu verbessern, Kapazität zu verwalten und die regionsübergreifende Clientmobilität zu behandeln. Weitere Informationen zu benutzerdefinierten Domänennamen.

„Retain“ in MQTT

Eine MQTT-Retained-Nachricht wird verwendet, um den zuletzt bekannten guten Wert eines Themas auf dem Vermittler zu speichern. Damit wird sichergestellt, dass neue Abonnenten die neueste Nachricht sofort erhalten, ohne auf die nächste Veröffentlichung warten zu müssen. Diese Fähigkeit ist besonders nützlich in Szenarien wie der Meldung von Gerätezuständen, Steuersignalen oder Konfigurationsdaten, bei denen den Clients bei der Verbindung immer die neueste Nachricht zur Verfügung stehen muss. Weitere Informationen finden Sie unter MQTT Retain Support in Azure Ereignisraster.

HTTP-Veröffentlichung

HTTP Publish ermöglicht es Anwendungen, MQTT-Nachrichten über eine einfache HTTPS POST-Anfrage an das Ereignisraster MQTT Vermittler zu veröffentlichen, ohne eine aktive MQTT-Sitzung zu unterhalten. Es eignet sich am besten für Szenarien, in denen MQTT-Clients nicht möglich oder notwendig sind, wie z. B. serverlose Funktionen, Cloud-Dienste oder Backend-Anwendungen. HTTP Publish ermöglicht es ereignisgesteuerten Architekturen, MQTT-Nachrichten zuverlässig und sicher einzuspeisen. Häufige Anwendungsfälle sind die Veröffentlichung von Gerätebefehlen, Warnungen oder Steuersignalen aus Azure Functions, Azure Logic Apps oder API-Integrationen. Weitere Informationen finden Sie unter HTTP Publish of MQTT messages in Azure Event Grid.

Konzepte

Erfahren Sie mehr über die Konzepte des MQTT Vermittlers im Ereignisraster:

Erfahren Sie mehr über den MQTT Vermittler und seine Hauptkonzepte: