Delen via


Ingebouwde lokale MQTT-broker voor Azure IoT Operations

Belangrijk

Deze pagina bevat instructies voor het beheren van Azure IoT Operations-onderdelen met behulp van Kubernetes-implementatiemanifesten, die in preview zijn. Deze functie is voorzien van verschillende beperkingen en mag niet worden gebruikt voor productieworkloads.

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.

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

MQTT-naleving

MQTT is ontstaan als de algemene taal die wordt gebruikt tussen protocollen in de IoT-ruimte. Met het eenvoudige ontwerp van MQTT kan één broker tienduizenden clients tegelijk bedienen, met lichtgewicht publicatie-abonneren voor het maken en beheren van onderwerpen. Veel IoT-apparaten ondersteunen MQTT standaard standaard. Downstreamomzettingsgateways rationaliseren de lange staart van IoT-protocollen in MQTT.

De MQTT-broker onderbouwt de berichtenlaag in IoT Operations en ondersteunt zowel MQTT v3.1.1 als MQTT v5. Zie MQTT-functieondersteuning in MQTT-broker voor meer informatie over ondersteunde MQTT-functies.

Architectuur

De MQTT-broker heeft twee belangrijke lagen:

  • Stateless front-endlaag
  • Stateful en shard-back-endlaag

De front-endlaag verwerkt clientverbindingen en aanvragen en stuurt deze naar de back-end. De back-endlaag partitioneert gegevens op basis van verschillende sleutels, zoals een client-id voor clientsessies en een onderwerpnaam voor onderwerpberichten. Er wordt gebruikgemaakt van ketenreplicatie om gegevens binnen elke partitie te repliceren.

De doelstellingen van de architectuur zijn:

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

Configuratie

Voor configuratie bestaat de MQTT-broker uit verschillende aangepaste Kubernetes-resources die verschillende aspecten van het gedrag en de functionaliteit van de broker definiëren:

  • De belangrijkste resource is Broker, die de globale instellingen definieert, zoals kardinaliteit, profiel voor geheugengebruik en diagnostische instellingen.
  • Een Broker-resource kan maximaal drie BrokerListeners hebben, die elk luisteren naar binnenkomende MQTT-verbindingen op het opgegeven servicetype (NodePort, LoadBalancerof ClusterIP). Elke BrokerListener-resource kan meerdere poorten hebben.
  • Elke poort binnen een BrokerListener-resource kan worden gekoppeld aan een BrokerAuthentication-resource en een BrokerAuthorization-resource . Deze verificatie- en autorisatiebeleidsregels bepalen welke clients verbinding kunnen maken met de poort en welke acties ze op de broker kunnen uitvoeren.

De relatie tussen Broker en BrokerListener is een-op-veel. De relatie tussen BrokerListener en BrokerAuthentication/BrokerAuthorization is veel-op-veel. Het diagram van de entiteitsrelatie voor deze resources is:

Diagram met het brokerresourcemodel.

IoT Operations implementeert standaard een standaardbroker, een standaard BrokerListener en een standaard BrokerAuthentication. Al deze resources hebben de naam standaard. Samen bieden deze resources een eenvoudige MQTT-brokerconfiguratie die vereist is om IoT Operations te laten functioneren. De standaardinstelling is:

Diagram met de standaardbrokerbronnen en -relaties ertussen.

Belangrijk

Als u onbedoelde onderbrekingen met de communicatie tussen interne onderdelen van IoT Operations wilt voorkomen, wordt u aangeraden geen standaardconfiguratie te wijzigen.

Als u de MQTT-brokerimplementatie wilt aanpassen, voegt u nieuwe resources zoals BrokerListeners, BrokerAuthentication en BrokerAuthorization toe aan de standaardbroker.

De Broker-resource zelf is onveranderbaar en kan niet worden gewijzigd na de implementatie, maar er is alleen aanpassing nodig in geavanceerde scenario's. Zie Standaardbroker aanpassen voor meer informatie over het aanpassen van de Broker-resource.

In een volledige implementatie kunt u meerdere BrokerListeners hebben, elk met meerdere poorten en elke poort kan verschillende BrokerAuthentication- en BrokerAuthorization-resources bevatten die eraan zijn gekoppeld.

U voegt bijvoorbeeld vanaf de standaardinstelling het volgende toe:

  • Een LoadBalancer BrokerListener genaamd example-lb-listener, met de twee poorten 1883 en 8883.
  • Een NodePort BrokerListener met de naam example-nodeport-listener, met één poort 1884 (nodePort 31884).
  • Een BrokerAuthentication-resource met de naam example-authn, met een aangepaste verificatiemethode.
  • Een BrokerAuthorization-resource met de naam example-authz, met uw aangepaste autorisatie-instellingen.

Als u vervolgens alle nieuwe poorten configureert met dezelfde BrokerAuthentication- en BrokerAuthorization-resources, ziet de installatie er als volgt uit:

Diagram met een volledige aangepaste brokerimplementatie en relaties tussen beide.

Op deze manier behoudt u de standaardinstelling intact en voegt u nieuwe resources toe om de MQTT-brokerimplementatie aan uw behoeften aan te passen.

Standaardbrokerresource

Elke IoT Operations-implementatie kan slechts één Broker hebben en moet de naam standaard hebben. De standaardbrokerresource is vereist om IoT-bewerkingen te laten functioneren. Het is onveranderbaar en kan niet worden gewijzigd na de implementatie.

Let op

Verwijder de standaardbrokerresource niet. Hierdoor wordt de communicatie tussen interne onderdelen van IoT Operations onderbroken en werkt de implementatie niet meer.

Standaardbroker aanpassen

Het aanpassen van de standaardbrokerresource is niet vereist voor de meeste instellingen. De instellingen waarvoor aanpassing is vereist, zijn onder andere:

  • Kardinaliteit: bepaalt de capaciteit van de broker voor het afhandelen van meer verbindingen en berichten en verbetert hoge beschikbaarheid als er pod- of knooppuntfouten zijn.
  • Geheugenprofiel: hiermee stelt u het maximale geheugengebruik van de broker in en hoe u geheugengebruik kunt verwerken wanneer de broker omhoog wordt geschaald.
  • Berichtbuffer met schijfsteun: configuratie voor het bufferen van berichten naar schijf wanneer het RAM-geheugen vol raakt.
  • Diagnostische instellingen: Configuratie voor diagnostische instellingen, zoals het eindpunt voor logboekniveau en metrische gegevens.
  • Geavanceerde MQTT-clientopties: configuratie voor geavanceerde MQTT-clientopties, zoals het verlopen van sessies, het verlopen van berichten en instellingen voor keep-alive.
  • Versleuteling van intern verkeer: configuratie voor het versleutelen van intern verkeer tussen brokerfrontend en back-endpods.

U kunt de standaardbroker alleen aanpassen tijdens de eerste implementatietijd met behulp van de Azure CLI of Azure Portal. Er is een nieuwe implementatie vereist als u andere Broker-configuratie-instellingen nodig hebt.

De standaardbroker aanpassen tijdens de implementatie:

Wanneer u de handleiding voor het implementeren van IoT-bewerkingen volgt, kijkt u in de sectie Configuratie onder de MQTT-brokerconfiguratie. Hier kunt u kardinaliteit en geheugenprofielinstellingen aanpassen. Gebruik de Azure CLI om andere instellingen te configureren, waaronder een berichtbuffer met schijfsteun en geavanceerde MQTT-clientopties.

Standaardbrokerinstellingen weergeven

De instellingen voor de standaardbroker weergeven:

  1. Ga in Azure Portal naar uw IoT Operations-exemplaar.
  2. Selecteer onder Onderdelen de optie MQTT Broker.
  3. Selecteer onder Broker-details de JSON-weergave.