Delen via


MQTT-berichten publiceren en abonneren met MQTT-broker

Belangrijk

Azure IoT Operations Preview: ingeschakeld door Azure Arc is momenteel in preview. Gebruik deze preview-software niet in productieomgevingen.

U moet een nieuwe Azure IoT Operations-installatie implementeren wanneer er een algemeen beschikbare release beschikbaar wordt gesteld. U kunt geen preview-installatie upgraden.

Raadpleeg de Aanvullende voorwaarden voor Microsoft Azure-previews voor juridische voorwaarden die van toepassing zijn op Azure-functies die in bèta of preview zijn of die anders nog niet algemeen beschikbaar zijn.

MQTT-broker beschikt over een MQTT-broker die compatibel is met standaarden en is schaalbaar, maximaal beschikbaar en Kubernetes-systeemeigen. Het biedt het berichtenvlak voor Azure IoT Operations Preview, maakt bidirectionele edge-/cloudcommunicatie mogelijk en maakt gebeurtenisgestuurde toepassingen mogelijk aan de rand.

MQTT-compatibel

MQTT-broker beschikt over een MQTT-broker die voldoet aan de standaarden die ondersteuning biedt voor zowel MQTT v3.1.1 als MQTT v5.

Message Queue Telemetry Transport (MQTT) is ontstaan als de binnenkomend verkeer tussen protocollen in de IoT-ruimte. Met het eenvoudige ontwerp van MQTT kan één broker tienduizenden clients tegelijk bedienen, met een lichtgewicht publicatieondertekening voor het maken en beheren van onderwerpen. Veel IoT-apparaten ondersteunen MQTT standaard out-of-the-box, waarbij de lange zijden van IoT-protocollen worden gerationaliseerd in MQTT door downstream-vertaalgateways.

MQTT Broker maakt gebruik van het MQTT-protocol als basis voor de berichtenlaag. Zie MQTT-functieondersteuning in MQTT-broker voor meer informatie over ondersteunde MQTT-functies.

In hoge mate beschikbaar en schaalbaar

Kubernetes kan workloads horizontaal schalen om in meerdere exemplaren uit te voeren. Deze redundantie betekent extra capaciteit voor het verwerken van aanvragen en betrouwbaarheid voor het geval een exemplaar uitvalt. Kubernetes heeft zelfherstel ingebouwd en exemplaren worden automatisch hersteld.

Naast kubernetes als elastische schaaltechnologie is het ook een standaard voor DevOps. Als MQTT de is tussen IoT-protocollen, is Kubernetes de qat-omgevingslaag voor het berekenen van infrastructuur. Door Kubernetes te gebruiken, kunt u dezelfde CI/CD-pijplijn, hulpprogramma's, bewaking, app-pakketten, werknemersvaardigheden overal gebruiken. Het resultaat is één end-to-end systeem van cloud-computing, on-premises servers en kleinere IoT-gateways op de fabrieksvloer. U kunt minder tijd besteden aan het omgaan met infrastructuur of DevOps en u richten op uw bedrijf.

MQTT-broker richt zich op de unieke edge-eigen, gegevensvlakwaarde die het kan bieden aan het Kubernetes-ecosysteem, terwijl deze naadloos in het systeem past. Het biedt een krachtige en schaalbare platformlaag voor berichten die is gebouwd rond MQTT en naadloze integratie met andere schaalbare Kubernetes-workloads en Azure.

Standaard beveiligd

MQTT-broker bouwt voort op beproefde Azure- en Kubernetes-systeemeigen beveiligings- en identiteitsconcepten, waardoor deze zowel zeer veilig als bruikbaar zijn. Het biedt ondersteuning voor meerdere verificatiemechanismen voor flexibiliteit, samen met gedetailleerde mechanismen voor toegangsbeheer tot op individueel MQTT-onderwerpniveau.

Tip

U hebt alleen toegang tot de standaardImplementatie van MQTT Broker met behulp van het cluster-IP-, TLS- en een serviceaccounttoken. Clients die verbinding maken van buiten het cluster, hebben extra configuratie nodig voordat ze verbinding kunnen maken.

Azure Arc-integratie

Het hybride platform van Microsoft is verankerd rond Kubernetes met Azure Arc als één besturingsvlak. Het biedt een beheervlak dat bestaande niet-Azure-, on-premises of andere cloudresources projecteert in Azure Resource Manager. Het resultaat is één besturingselementvenster voor het beheren van virtuele machines, Kubernetes-clusters en databases die niet worden uitgevoerd in Azure-datacenters.

MQTT-broker wordt geïmplementeerd als een Azure Arc voor Kubernetes-extensie en kan worden beheerd via een volledige Azure-resourceprovider (RP) - microsoft/IoTOperationsMQ. Dit betekent dat u het kunt beheren, net zoals systeemeigen Azure-cloudresources, zoals virtuele machines, opslag, enzovoort.

Met Azure Arc-technologie kunnen de wijzigingen van kracht worden op MQTT Broker-services die worden uitgevoerd op het on-premises Kubernetes-cluster. Als u liever een volledig Systeemeigen Kubernetes-benadering gebruikt, kunt u MQTT-broker beheren met aangepaste Kubernetes-resourcedefinities (CRD's) lokaal of gitOps-technologieën zoals Flux gebruiken.

Cloudconnectors

Mogelijk hebt u verschillende berichtvereisten voor uw cloudscenario. Een bidirectioneel snel pad naar cloud/edge voor gegevens met hoge prioriteit of om bijna realtime clouddashboards en een goedkoper langzaam pad te maken voor minder tijdkritische gegevens die in batches kunnen worden bijgewerkt.

Om flexibiliteit te bieden, biedt MQTT-broker ingebouwde Azure-connectors voor Event Hubs (met Kafka-eindpunt), de MQTT-brokermogelijkheid van Event Grid, Microsoft Fabric en Blob Storage. MQTT Broker is uitbreidbaar, zodat u uw voorkeursoplossing voor cloudberichten kunt kiezen die met uw oplossing werkt.

Door te bouwen op Azure Arc, kunnen de connectors worden geconfigureerd voor het gebruik van Azure Managed Identity voor toegang tot de cloudservices met krachtig op rollen gebaseerd toegangsbeheer van Azure (RBAC). Er is geen handmatig, onveilig en lastig referentiebeheer vereist.

Dapr-programmeermodel

Dapr vereenvoudigt het loodgieterswerk tussen gedistribueerde toepassingen door algemene gedistribueerde toepassingsmogelijkheden weer te geven, zoals statusbeheer, aanroepen van services en berichten voor publiceren/abonneren. Dapr-onderdelen liggen onder de bouwstenen en bieden de concrete implementatie voor elke mogelijkheid. U kunt zich richten op bedrijfslogica en dapr gedistribueerde toepassingsgegevens laten verwerken.

MQTT Broker biedt pluggable Dapr publish-subscribe- en state store-bouwstenen, waardoor ontwikkeling en implementatie van gebeurtenisgestuurde toepassingen op de rand eenvoudig en technologieneutraal zijn.

Architectuur

De MQTT-broker heeft drie lagen:

  • Stateless front-endlaag die clientaanvragen verwerkt
  • Load balancer die aanvragen routeert en de broker verbindt met anderen
  • Stateful en shard-back-endlaag waarin gegevens worden opgeslagen en verwerkt

De back-endlaag partitioneert gegevens op basis van verschillende sleutels, zoals client-id voor clientsessies en onderwerpnaam voor onderwerpberichten. Er wordt gebruikgemaakt van ketenreplicatie om gegevens binnen elke partitie te repliceren. Voor gegevens die worden gedeeld door alle partities, wordt één keten gebruikt die alle partities omvat.

De doelstellingen van de architectuur zijn:

  • Fouttolerantie en isolatie: berichtpublicatie wordt voortgezet als back-endknooppunten mislukken en voorkomt dat fouten worden doorgegeven aan de rest van het systeem
  • Herstel van fouten: Automatisch herstel van fouten zonder tussenkomst van operator
  • Geen berichtverlies: Bezorging van berichten als ten minste één front-endknooppunt en één back-endknooppunt wordt uitgevoerd
  • Elastisch schalen: horizontaal schalen van publiceren en abonneren op doorvoer ter ondersteuning van edge- en cloudimplementaties
  • Consistente prestaties op schaal: overhead van berichtlatentie beperken vanwege ketenreplicatie
  • Operationele eenvoud: Minimale afhankelijkheid van externe onderdelen om onderhoud en complexiteit te vereenvoudigen

Volgende stappen

Azure IoT Operations Preview implementeren in een Kubernetes-cluster met Arc