Freigeben über


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

Azure Event Grid ermöglicht es Ihren MQTT-Clients, miteinander und mit Azure-Diensten zu kommunizieren, um Ihre IoT-Lösungen (Internet of Things, Internet der Dinge) zu unterstützen.

Mit dem MQTT Vermittler-Feature von Azure Event Grid können Sie die folgenden Szenarien durchführen:

  • Erfassen von Telemetriedaten mithilfe eines n:1-Messagingmusters. 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 Ihrer MQTT-Clients mithilfe des Anforderung/Antwort-Messagingmusters (1:1). Dieses Muster ermöglicht es jedem Client, unabhängig von den Rollen der Clients ohne Einschränkungen mit jedem anderen Client zu kommunizieren.
  • Senden von Warnungen an eine Gruppe von Clients mithilfe des 1:n-Messagingmusters. Dieses Muster ermöglicht es der Anwendung, nur eine Nachricht zu veröffentlichen, die der Dienst für jeden interessierten Client repliziert.
  • Integrieren von Daten von Ihren MQTT-Clients, indem MQTT-Nachrichten über die HTTP-Pushübermittlungsfunktion an Azure-Dienste und Webhooks weitergeleitet werden. Durch diese Integration in Azure-Dienste können Sie Datenpipelines erstellen, die mit Datenerfassung von Ihren IoT-Geräten beginnen.

Codebeispiele, die diese Szenarien veranschaulichen, finden Sie in diesem Repository.

Der MQTT-Broker ist unter anderem ideal für die Umsetzung von Automotive- und Mobility-Szenarien. In der Referenzarchitektur erfahren Sie, wie Sie sichere und skalierbare Lösungen für die Anbindung von Millionen von Fahrzeugen an die Cloud mit Hilfe der Messaging- und Datenanalysedienste von Azure erstellen können.

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

Wichtige Begriffe

Im Folgenden finden Sie eine Liste der wichtigsten Konzepte, die mit der MQTT-Brokerfunktion von Azure Event Grid verbunden sind.

MQTT

MQTT ist ein Veröffentlichungs-Abonnement-Messagingtransportprotokoll, das für eingeschränkte Umgebungen entwickelt wurde. Aufgrund seiner Effizienz, Skalierbarkeit und Zuverlässigkeit ist es der bevorzugte Kommunikationsstandard für IoT-Szenarien. Der MQTT-Broker ermöglicht es Clients, Nachrichten über die Protokolle MQTT v3.1.1, MQTT v3.1.1 über WebSockets, MQTT v5 und MQTT v5 über WebSockets zu veröffentlichen und zu abonnieren. Die folgende Liste zeigt einige der wichtigsten Funktionen des MQTT-Brokers:

  • MQTT v5-Features:

    • Last Will and Testament (LWT) benachrichtigt Ihre MQTT-Clients bei der abrupten Trennungen anderer MQTT-Clients. Sie können LWT verwenden, um einen vorhersehbaren und zuverlässigen Flow der Kommunikation zwischen MQTT-Clients bei unerwarteten Verbindungsunterbrechungen zu gewährleisten.
    • Benutzereigenschaften ermöglichen es Ihnen, benutzerdefinierte Schlüssel-Wert-Paare im Nachrichtenheader hinzuzufügen, um mehr Kontext zur Nachricht bereitzustellen. Geben Sie beispielsweise den Zweck oder den Ursprung der Nachricht an, damit der Empfänger die Nachricht effizient verarbeiten kann.
    • Das Anforderung/Antwort-Muster ermöglicht es Ihren Clients, das asynchrone Standardmuster für Anforderung/Antwort zu nutzen, indem das Antwortthema und die Korrelations-ID in der Anforderung angegeben werden, damit der Client ohne vorherige Konfiguration antworten kann.
    • Das Nachrichtenablaufintervall ermöglicht es Ihnen, dem MQTT-Broker mitzuteilen, wann eine Nachricht, die nicht mehr relevant oder gültig ist, ignoriert werden soll. Beispielsweise Ignorieren veralteter Befehle oder Warnungen.
    • Themenaliase helfen Ihren Clients, die Größe des Themenfelds zu reduzieren, wodurch die Datenübertragung kostengünstiger wird.
    • Die maximale Nachrichtengröße ermöglicht es Ihren Clients, die maximale Nachrichtengröße zu steuern, die sie vom Server verarbeiten können.
    • Mit Empfangsmaximum können Ihre Clients die Nachrichtenrate abhängig von ihren Funktionen wie Verarbeitungsgeschwindigkeit oder Speicherfunktionen steuern.
    • Sauberer Start und Sitzungsablauf ermöglichen es Ihren Clients, die Zuverlässigkeit und Sicherheit der Sitzung zu optimieren, indem die Abonnementinformationen und Nachrichten des Clients für ein konfigurierbares Zeitintervall beibehalten werden.
    • Negative Bestätigungen ermöglichen es Ihren Clients, effizient auf verschiedene Fehlercodes zu reagieren.
    • Serverseitig gesendete Trennpakete ermöglichen es Ihren Clients, Trennungen effizient zu verarbeiten.
  • Der MQTT-Broker fügt in Zukunft weitere MQTT v5-Funktionen hinzu, um sich besser an die MQTT-Spezifikationen anzupassen. Die folgenden Punkte beschreiben die aktuellen Unterschiede zwischen den vom MQTT Vermittler unterstützten Features und den MQTT v5-Spezifikationen: Will message, Retain flag, Message ordering und QoS 2 werden nicht unterstützt.

  • Features von MQTT v3.1.1:

    • Last Will and Testament (LWT) benachrichtigt Ihre MQTT-Clients bei der abrupten Trennungen anderer MQTT-Clients. Sie können LWT verwenden, um einen vorhersehbaren und zuverlässigen Flow der Kommunikation zwischen MQTT-Clients bei unerwarteten Verbindungsunterbrechungen zu gewährleisten.
    • Persistente Sitzungen stellen die Zuverlässigkeit sicher, indem die Abonnementinformationen und Nachrichten des Clients beibehalten werden, wenn ein Client die Verbindung trennt.
    • QoS 0 und 1 verleihen Ihren Kunden Kontrolle über die Effizienz und Zuverlässigkeit der Kommunikation.
  • Der MQTT-Broker fügt in Zukunft weitere MQTT v3.1.1-Funktionen hinzu, um sich besser an die MQTT-Spezifikationen anzupassen. Die folgenden Punkte beschreiben die aktuellen Unterschiede zwischen den von MQTT-Broker unterstützten Funktionen und der MQTT v3.1.1-Spezifikation: Retain flag, Message ordering und QoS 2 werden nicht unterstützt.

Erfahren Sie mehr über den MQTT-Broker und die derzeitigen Beschränkungen .

Veröffentlichen/Abonnieren-Messagingmodell

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. Mithilfe des Veröffentlichen/Abonnieren-Messagingmodells können Ihre Clients effizient mit 1:n-, n:1- und 1:1-Messagingmustern kommunizieren.

  • Das 1:n-Messagingmuster ermöglicht es Clients, nur eine Nachricht zu veröffentlichen, die der Dienst für jeden interessierten Client repliziert.
  • Das Many-to-One-Messaging-Muster ermöglicht es den Kunden, die Verwaltung der großen Anzahl von Verbindungen zum MQTT-Broker zu entlasten.
  • Das 1:1-Messagingmuster ermöglicht es jedem Client, unabhängig von den Rollen der Clients ohne Einschränkungen mit jedem anderen Client zu kommunizieren.

Namespace

Der Event Grid-Namespace ist ein Verwaltungscontainer für die Ressourcen, die die MQTT-Brokerfunktionalität unterstützen, zusammen mit den Ressourcen, die die Pullübermittlungsfunktion unterstützen. Ihr MQTT-Client kann sich mit dem MQTT-Broker verbinden und Nachrichten veröffentlichen/abonnieren, während der MQTT-Broker Ihre Clients authentifiziert, Veröffentlichungs-/Abonnementanfragen autorisiert und Nachrichten an interessierte Clients weiterleitet. Erfahren Sie mehr über das Namespacekonzept.

Clients

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 können Sensoren, Appliances, Computer oder andere Objekte sein, 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 der Fähigkeit, Echtzeitdaten und -erkenntnisse bereitzustellen, sodass Unternehmen und Einzelpersonen fundierte Entscheidungen treffen und Effizienz und Produktivität verbessern können.

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-Broker verbindet, muss er sich anhand der in der Identitätsregistrierung gespeicherten Anmeldedaten beim MQTT-Broker authentifizieren. MQTT-Broker unterstützt die folgenden Clientauthentifizierungsmechanismen:

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. Event Grid bietet rollenbasierte Zugriffssteuerung (Role-Based Access Control, RBAC) über ein flexibles Zugriffssteuerungsmodell, mit dem Sie die Autorisierung von Clients zum Veröffentlichen oder Abonnieren von Themen verwalten können.

Angesichts des enormen Umfangs von IoT-Umgebungen ist das Zuweisen von Berechtigungen für jeden Client zu jedem Thema unglaublich mühselig. Die flexible Zugriffssteuerung von Event Grid löst diese Skalierungsaufgabe, indem Clients und Themen in Clientgruppen und Themenbereichen gruppiert werden. Nach dem Erstellen von Clientgruppen und Themenbereichen können Sie eine Berechtigungsbindung konfigurieren, um einer Clientgruppe Zugriff zu gewähren, um einen Themenbereich zu veröffentlichen oder zu abonnieren.

Abbildung: Zugriffssteuerungsmodell.

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. Erfahren Sie mehr über Zugriffssteuerung.

Routing

Mit Event Grid 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. Die Routing-Konfiguration ermöglicht es Ihnen, alle MQTT-Nachrichten von Ihren Clients entweder an ein Event Grid Namespace-Topic oder ein Event Grid Custom-Topic zu senden. Sobald sich die Nachrichten im Thema befinden, können Sie ein Ereignisabonnement konfigurieren, um die Nachrichten aus dem Thema zu konsumieren. Mit dieser Funktionalität können Sie beispielsweise Event Grid 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.

Abbildung: MQTT-Nachrichtenrouting.

Integration des Edge-MQTT-Brokers

Event Grid lässt sich mit Azure IoT MQ integrieren, um dessen MQTT-Broker-Feature am Edge mit der MQTT-Broker-Fähigkeit von Azure Event Grid in der Cloud zu verbinden. Azure IoT MQ ist ein neuer verteilter MQTT-Broker für Edge Computing, der auf Arc-fähigen Kubernetes-Clustern läuft. Es kann eine Verbindung zum Event Grid MQTT-Broker mit Microsoft Entra ID (ehemals Azure Active Directory) herstellen, wobei eine vom System zugewiesene verwaltete Identität verwendet wird, was die Verwaltung der Anmeldeinformationen vereinfacht. Azure IoT MQ bietet hohe Verfügbarkeit, Skalierbarkeit und Sicherheit für Ihre IoT-Geräte und -Anwendungen. Sie ist jetzt in der öffentlichen Vorschau als Teil von Azure IoT Operations verfügbar. Erfahren Sie mehr über die Verbindung von Azure IoT MQ mit dem MQTT Vermittler von Azure Event Grid.

Ereignisse des MQTT-Clientlebenszyklus

Mit den Ereignissen des Client-Lebenszyklus können Anwendungen auf Ereignisse reagieren, die den Verbindungsstatus des Clients oder die Operationen der Client-Ressourcen betreffen. Sie können den Verbindungsstatus Ihrer Clients nachverfolgen, mit einer Entschärfungsmaßnahme auf Verbindungsabbrüche von Clients reagieren und den Namespace nachverfolgen, mit dem Ihre Clients während automatischer Failover verbunden sind. Erfahren Sie mehr über MQTT-Clientlebenszyklusereignisse.

Benutzerdefinierte Domänennamen

Die Unterstützung benutzerdefinierter Domänennamen ermöglicht Benutzern das Zuweisen eigener Domänennamen zu den MQTT- und HTTP-Endpunkten des Event Grid-Namespaces, zur Verbesserung der Sicherheit und Vereinfachung der Clientkonfiguration. 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. Erfahren Sie mehr über benutzerdefinierte Domänennamen.

Nächste Schritte

In den folgenden Artikeln erfahren Sie mehr über den MQTT-Broker und seine wichtigsten Konzepte.

Konzepte