Panoramica della funzionalità broker MQTT in Griglia di eventi di Azure

Griglia di eventi di Azure consente ai client MQTT di comunicare tra loro e con i servizi di Azure, per supportare le soluzioni Internet delle cose (IoT).

la funzionalità broker MQTT di Griglia di eventi di Azure consente di eseguire gli scenari seguenti:

  • Inserire i dati di telemetria usando un modello di messaggistica molti-a-uno. Questo modello consente all'applicazione di scaricare il carico di lavoro di gestione del numero elevato di connessioni con i dispositivi a Griglia di eventi.
  • Controllare i client MQTT usando il modello di messaggistica request-response (uno-a-uno). Questo modello consente a qualsiasi client di comunicare con qualsiasi altro client senza restrizioni, indipendentemente dai ruoli dei client.
  • Trasmettere avvisi a una flotta di client usando il modello di messaggistica uno-a-molti. Questo modello consente all'applicazione di pubblicare un solo messaggio che il servizio replica per ogni client interessato.
  • Integrare i dati dai client MQTT instradando i messaggi MQTT ai servizi di Azure e ai webhook tramite la funzionalità di recapito push HTTP. Questa integrazione con i servizi di Azure consente di creare pipeline di dati che iniziano con l'inserimento di dati dai dispositivi IoT.

È possibile trovare esempi di codice che illustrano questi scenari in questo repository.

Il broker MQTT è ideale per l'implementazione di scenari di mobilità e automotive, tra gli altri. Vedere l'architettura di riferimento per informazioni su come creare soluzioni sicure e scalabili per connettere milioni di veicoli al cloud, usando i servizi di messaggistica e analisi dei dati di Azure.

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

Concetti chiave

Di seguito è riportato un elenco dei concetti chiave coinvolti nella funzionalità broker MQTT di Griglia di eventi di Azure.

MQTT

MQTT è un protocollo di trasporto di messaggistica publish-subscribe progettato per ambienti vincolati. È lo standard di comunicazione go-to per gli scenari IoT a causa di efficienza, scalabilità e affidabilità. Il broker MQTT consente ai client di pubblicare e sottoscrivere messaggi tramite MQTT v3.1.1, MQTT v3.1.1 su WebSocket, MQTT v5 e MQTT v5 su protocolli WebSocket. L'elenco seguente mostra alcune delle caratteristiche principali del broker MQTT:

  • Funzionalità di MQTT v5:

    • Le proprietà utente consentono di aggiungere coppie chiave-valore personalizzate nell'intestazione del messaggio per fornire più contesto sul messaggio. Ad esempio, includere lo scopo o l'origine del messaggio in modo che il ricevitore possa gestire il messaggio in modo efficiente.
    • Il modello di richiesta-risposta consente ai client di sfruttare il modello asincrono di richiesta-risposta standard, specificando l'argomento di risposta e l'ID di correlazione nella richiesta che il client risponda senza la configurazione precedente.
    • L'intervallo di scadenza dei messaggi consente di dichiarare al broker MQTT quando ignorare un messaggio non più rilevante o valido. Ad esempio, ignorare i comandi o gli avvisi non aggiornati.
    • Gli alias degli argomenti consentono ai client di ridurre le dimensioni del campo dell'argomento, rendendo il trasferimento dei dati meno costoso.
    • La dimensione massima dei messaggi consente ai client di controllare le dimensioni massime dei messaggi che possono gestire dal server.
    • Receive Maximum consente ai client di controllare la frequenza dei messaggi in base alle relative funzionalità, ad esempio la velocità di elaborazione o le funzionalità di archiviazione.
    • La pulizia della scadenza dell'avvio e della sessione consente ai client di ottimizzare l'affidabilità e la sicurezza della sessione conservando le informazioni e i messaggi della sottoscrizione del client per un intervallo di tempo configurabile.
    • I riconoscimenti negativi consentono ai client di reagire in modo efficiente a codici di errore diversi.
    • I pacchetti di disconnessione inviati dal server consentono ai client di gestire in modo efficiente le disconnessioni.
  • Il broker MQTT aggiunge altre funzionalità MQTT v5 in futuro per allinearsi di più alle specifiche MQTT. Gli elementi seguenti illustrano in dettaglio le differenze correnti tra le funzionalità supportate dal broker MQTT e le specifiche MQTT v5: Messaggio, Mantenimento flag, Ordinamento messaggi e QoS 2 non sono supportati.

  • Funzionalità di MQTT v3.1.1:

    • Le sessioni permanenti garantiscono l'affidabilità mantenendo le informazioni e i messaggi della sottoscrizione del client quando un client si disconnette.
    • QoS 0 e 1 forniscono ai clienti il controllo sull'efficienza e l'affidabilità della comunicazione.
  • Il broker MQTT aggiunge altre funzionalità MQTT v3.1.1 in futuro per allinearsi di più alle specifiche MQTT. Gli elementi seguenti illustrano in dettaglio le differenze correnti tra le funzionalità supportate dal broker MQTT e la specifica MQTT v3.1.1: Il messaggio, il flag di conservazione, l'ordinamento dei messaggi e QoS 2 non sono supportati.

Altre informazioni sul broker MQTT e sulle limitazioni correnti.

Modello di messaggistica Publish-Subscribe

Il modello di messaggistica publish-subscribe fornisce una comunicazione scalabile e asincrona ai client. Consente ai client di eseguire l'offload del carico di gestione di un numero elevato di connessioni e messaggi al servizio. Tramite il modello di messaggistica Publish-Subscribe, i client possono comunicare in modo efficiente usando modelli di messaggistica uno-a-molti, molti-a-uno e uno-a-uno.

  • Il modello di messaggistica uno-a-molti consente ai client di pubblicare un solo messaggio che il servizio replica per ogni client interessato.
  • Il modello di messaggistica molti-a-uno consente ai client di scaricare il carico di lavoro di gestione del numero elevato di connessioni al broker MQTT.
  • Il modello di messaggistica uno-a-uno consente a qualsiasi client di comunicare con qualsiasi altro client senza restrizioni, indipendentemente dai ruoli dei client.

Spazio dei nomi

Lo spazio dei nomi di Griglia di eventi è un contenitore di gestione per le risorse che supportano la funzionalità del broker MQTT, insieme alle risorse che supportano la funzionalità di recapito pull. Il client MQTT può connettersi al broker MQTT e pubblicare/sottoscrivere i messaggi, mentre il broker MQTT autentica i client, autorizza le richieste di pubblicazione/sottoscrizione e inoltra i messaggi ai client interessati. Altre informazioni sul concetto di spazio dei nomi.

Client

I client fanno riferimento a dispositivi o applicazioni IoT che pubblicano e sottoscrivono messaggi MQTT.

I dispositivi IoT sono oggetti fisici connessi a Internet per trasmettere i dati di telemetria e ricevere comandi. Questi dispositivi possono essere sensori, appliance, macchine o altri oggetti dotati di sensori e software incorporati. I sensori e il software consentono loro di comunicare e interagire tra loro e l'ambiente circostante. Il valore dei dispositivi IoT risiede nella capacità di fornire dati e informazioni dettagliate in tempo reale, consentendo alle aziende e ai singoli utenti di prendere decisioni informate e migliorare efficienza e produttività.

Le applicazioni IoT sono software progettato per interagire ed elaborare i dati dai dispositivi IoT. In genere includono componenti come la raccolta di dati, l'elaborazione, l'archiviazione, la visualizzazione e l'analisi. Queste applicazioni consentono agli utenti di monitorare e controllare i dispositivi connessi, automatizzare le attività e ottenere informazioni dettagliate dai dati generati dai dispositivi IoT.

Autenticazione client

Griglia di eventi dispone di un registro client che archivia informazioni sui client autorizzati a connettersi. Prima che un client possa connettersi, deve essere presente una voce per tale client nel Registro di sistema client. Poiché un client si connette al broker MQTT, deve eseguire l'autenticazione con il broker MQTT in base alle credenziali archiviate nel registro delle identità. Il broker MQTT supporta l'autenticazione del certificato X.509 standard di autenticazione del settore nei dispositivi IoT e l'ID Microsoft Entra che è lo standard di autenticazione di Azure per le applicazioni.Altre informazioni sull'autenticazione client MQTT.

Controllo di accesso

Il controllo di accesso è fondamentale per gli scenari IoT considerando l'enorme scalabilità degli ambienti IoT e le problematiche di sicurezza univoche dei dispositivi vincolati. Griglia di eventi offre Controllo di accesso basate sui ruoli tramite un modello di controllo degli accessi flessibile che consente di gestire l'autorizzazione dei client a pubblicare o sottoscrivere argomenti.

Data l'enorme scala degli ambienti IoT, l'assegnazione dell'autorizzazione per ogni client a ogni argomento è incredibilmente noiosa. Il controllo di accesso flessibile di Griglia di eventi affronta questa sfida di scalabilità tramite il raggruppamento di client e argomenti in gruppi client e spazi di argomenti. Dopo aver creato gruppi client e spazi di argomenti, è possibile configurare un'associazione di autorizzazioni per concedere l'accesso a un gruppo client per pubblicare o sottoscrivere uno spazio argomenti.

Diagram of the access control model.

Gli spazi degli argomenti forniscono anche un controllo di accesso granulare consentendo di controllare l'autorizzazione di ogni client all'interno di un gruppo client per pubblicare o sottoscrivere il proprio argomento. Questo controllo di accesso granulare viene ottenuto usando le variabili nei modelli di argomento. Altre informazioni sul controllo di accesso.

Routing

Griglia di eventi consente di instradare i messaggi MQTT ai servizi di Azure o ai webhook per un'ulteriore elaborazione. Di conseguenza, è possibile creare soluzioni end-to-end usando i dati IoT per l'analisi dei dati, l'archiviazione e le visualizzazioni, tra gli altri casi d'uso. La configurazione di routing consente di inviare tutti i messaggi MQTT dai client a un argomento dello spazio dei nomi di Griglia di eventi o a un argomento personalizzato di Griglia di eventi. Quando i messaggi si trovano nell'argomento, è possibile configurare una sottoscrizione di eventi per utilizzare i messaggi dell'argomento. Ad esempio, questa funzionalità consente di usare Griglia di eventi per instradare i dati di telemetria dai dispositivi IoT a Hub eventi e quindi ad Analisi di flusso di Azure per ottenere informazioni dettagliate dai dati di telemetria del dispositivo. Altre informazioni sul routing.

Diagram of the MQTT message routing.

Integrazione del broker MQTT edge

Griglia di eventi si integra con Azure IoT MQ per collegare la funzionalità broker MQTT sul perimetro con la funzionalità broker MQTT di Griglia di eventi di Azure nel cloud. Azure IoT MQ è un nuovo broker MQTT distribuito per il calcolo perimetrale, in esecuzione nei cluster Kubernetes abilitati per Arc. Può connettersi al broker MQTT di Griglia di eventi con l'autenticazione di Microsoft Entra ID (in precedenza Azure Active Directory) usando l'identità gestita assegnata dal sistema, semplificando la gestione delle credenziali. Azure IoT MQ offre disponibilità elevata, scalabilità e sicurezza per dispositivi e applicazioni IoT. È ora disponibile in anteprima pubblica come parte delle operazioni di Azure IoT. Altre informazioni sulla connessione di Azure IoT MQ al broker MQ GRIGLIA DI EVENTI DI AZURE.

Eventi del ciclo di vita dei client MQTT

Gli eventi del ciclo di vita client consentono alle applicazioni di reagire agli eventi relativi allo stato della connessione client o alle operazioni delle risorse client. Consente di tenere traccia dello stato della connessione del client, reagire con un'azione di mitigazione per le disconnessioni client e tenere traccia dello spazio dei nomi a cui sono collegati i client durante i failover automatizzati. Altre informazioni sugli eventi del ciclo di vita del client MQTT.

Passaggi successivi

Usare gli articoli seguenti per altre informazioni sul broker MQTT e sui concetti principali.

Concetti