Dela via


Azure IoT Operations inbyggd lokal MQTT-koordinator

Viktigt!

Den här sidan innehåller instruktioner för att hantera Azure IoT Operations-komponenter med hjälp av Kubernetes-distributionsmanifest, som finns i förhandsversion. Den här funktionen har flera begränsningar och bör inte användas för produktionsarbetsbelastningar.

Juridiska villkor för Azure-funktioner i betaversion, förhandsversion eller som av någon annan anledning inte har gjorts allmänt tillgängliga ännu finns i kompletterande användningsvillkor för Microsoft Azure-förhandsversioner.

Azure IoT Operations innehåller en MQTT-mäklare som är kompatibel med företagsklass och standarder. MQTT-mäklaren är skalbar, hög tillgänglig och Kubernetes-inbyggd. Den tillhandahåller meddelandeplanet för IoT-åtgärder, möjliggör dubbelriktad kommunikation från gränsen till molnet och stöder händelsedrivna program vid gränsen.

MQTT-efterlevnad

MQTT är ett vanligt protokoll i IoT-utrymmet. Den enkla designen gör att en enda mäklare kan hantera tusentals klienter samtidigt med enkel publiceringsprenumerering, skapande och hantering av ämnen. Många IoT-enheter har inbyggt stöd för MQTT. Underordnade översättningsgatewayer konverterar olika IoT-protokoll till MQTT.

MQTT-broker stöder meddelandelagret i IoT Operations och är kompatibla med MQTT v3.1.1 och MQTT v5. Mer information om MQTT-funktioner som stöds finns i MQTT-funktionsstöd i MQTT Broker.

Arkitektur

MQTT-broker har två huvudlager

  • Tillståndslöst frontend-lager
  • Tillståndskänsligt och fragmenterat serverdelslager

Klientdelsskiktet hanterar klientanslutningar och begäranden och dirigerar dem till serverdelen. Bakgrundslagret partitionerar data efter nycklar, såsom ett klient-ID för klientsessioner och ett ämnesnamn för ämnesmeddelanden. Bakgrundslagret använder kedjereplikering för att kopiera data i varje partition.

Arkitekturens mål är:

  • Feltolerans och isolering: Meddelandepubliceringen fortsätter om serverdelspoddar misslyckas och fel inte sprids till resten av systemet.
  • Återställning av fel: Automatisk felåterställning utan operatörsintervention.
  • Ingen meddelandeförlust: Meddelanden levereras om minst en frontend-podd och en backend-podd fungerar i en partition.
  • Elastisk skalning: Horisontell skalning av publicerings- och prenumerationsdataflöde har stöd för gräns- och molndistributioner.
  • Konsekvent prestanda i stor skala: Begränsar kostnaderna för meddelandefördröjning på grund av kedjereplikering.
  • Drifts enkelhet: Minskar beroendet av externa komponenter för att förenkla underhåll och komplexitet.

Konfiguration

För konfiguration använder MQTT-mäklaren flera anpassade Kubernetes-resurser för att definiera olika aspekter av mäklarens beteende och funktioner:

  • Huvudresursen är Broker, som definierar globala inställningar som kardinalitet, minnesanvändningsprofil och diagnostikinställningar.
  • En Broker-resurs kan ha upp till tre BrokerListeners, som var och en lyssnar efter inkommande MQTT-anslutningar på den angivna tjänsttypen (NodePort, LoadBalancereller ClusterIP). Varje BrokerListener-resurs kan ha flera portar.
  • Varje port i en BrokerListener-resurs kan associeras med en BrokerAuthentication-resurs och en BrokerAuthorization-resurs . Dessa autentiserings- och auktoriseringsprinciper avgör vilka klienter som kan ansluta till porten och vilka åtgärder de kan utföra på koordinatorn.

Relationen mellan Broker och BrokerListener är en-till-många, medan relationen mellan BrokerListener och BrokerAuthentication/BrokerAuthorization är många-till-många. Ett entitetsrelationsdiagram för dessa resurser är:

Diagram som visar koordinatorresursmodellen.

Som standard distribuerar IoT Operations en standard broker, en standard BrokerListener och en standard BrokerAuthentication. Alla dessa resurser heter standard. Tillsammans tillhandahåller dessa resurser en grundläggande MQTT-koordinatorkonfiguration som krävs för att IoT-åtgärder ska fungera. Standardinställningen är:

Diagram som visar standardmäklardefinitioner samt relationerna mellan dem.

Viktigt!

Om du vill undvika att störa kommunikationen mellan interna IoT Operations-komponenter ändrar du inte någon standardkonfiguration.

Om du vill anpassa MQTT-brokerdistribueringen lägger du till nya resurser som BrokerListeners, BrokerAuthentication och BrokerAuthorization till standardbroker.

Broker-resursen är oföränderlig och kan inte ändras efter distributionen, men den kräver endast anpassning i avancerade scenarier. Mer information om hur du anpassar Broker-resursen finns i Anpassa standard Broker.

I en fullständig distribution kan du ha flera BrokerListeners, var och en med flera portar, och varje port kan ha olika BrokerAuthentication- och BrokerAuthorization-resurser associerade med den.

Om du till exempel börjar med standardkonfigurationen lägger du till:

  • En LoadBalancer BrokerListener med namnet example-lb-listener, med de två portarna 1883 och 8883.
  • En NodePort BrokerListener med namnet example-nodeport-listener, med den enda porten 1884 (nodePort 31884).
  • En BrokerAuthentication-resurs med namnet example-authn med en anpassad autentiseringsmetod.
  • En BrokerAuthorization-resurs med namnet example-authz med dina anpassade auktoriseringsinställningar.

Om du konfigurerar alla nya portar med samma BrokerAuthentication- och BrokerAuthorization-resurser ser konfigurationen ut så här:

Diagram som visar en fullständig distribution av anpassad mäklare och relationerna mellan dem.

Den här metoden håller standardkonfigurationen intakt och gör att du kan lägga till nya resurser för att anpassa MQTT-koordinatordistributionen.

Standardresurs för mäklare

Varje IoT Operations-distribution kan endast ha en broker, och den måste ha namnet default. Standardmäklarresursen krävs för att IoT-verksamhet ska fungera. Den är oföränderlig och kan inte ändras efter distributionen.

Varning

Ta inte bort standardresursen för mäklaren. Detta stör kommunikationen mellan interna IoT Operations-komponenter och distributionen slutar fungera.

Anpassa standardmäklare

Det krävs inte att du anpassar standardköresursen för de flesta installationer. Inställningarna som kräver anpassning är:

  • Kardinalitet: Avgör mäklarens kapacitet att hantera fler anslutningar och meddelanden, och ökar hög tillgänglighet vid fel på poddar eller noder.
  • Minnesprofil: Anger den maximala minnesanvändningen för mellanhanden och hur minnesanvändningen hanteras när mellanhanden skalar upp.
  • Diskbackad meddelandebuffert: Konfiguration för buffring av meddelanden till disk när RAM-minnet fylls.
  • Diagnostikinställningar: Konfiguration för diagnostikinställningar som loggnivå och slutpunkt för mått.
  • Avancerade MQTT-klientalternativ: Konfiguration för avancerade MQTT-klientalternativ som sessionsförfallodatum, meddelandeförfallodatum och inställningar för att hålla vid liv.
  • Kryptering av intern trafik: Konfiguration för kryptering av intern trafik mellan frontend- och backendpoddar för broker.

Du kan endast anpassa standardkoordinatorn under den inledande distributionen med hjälp av Azure CLI eller Azure-portalen. En ny distribution krävs om du behöver olika konfigurationsinställningar för koordinatorer.

För att anpassa standardmäklaren under distributionen:

När du följer guiden för att distribuera IoT-åtgärder går du till avsnittet Konfiguration och tittar under MQTT-koordinatorkonfiguration. Här kan du anpassa inställningar för kardinalitet och minnesprofil. Om du vill konfigurera andra inställningar, inklusive diskstödd meddelandebuffert och avancerade MQTT-klientalternativ, använder du Azure CLI.

Viktigt!

Du kan inte uppdatera koordinatorresursen efter den första distributionen. Konfigurationsändringar av kardinalitet, minnesprofil eller diskbuffert tillåts inte efter distributionen.

Som en lösning kan du när du distribuerar Azure IoT Operations med kommandot az iot ops init inkludera parametern --broker-config-file med en JSON-konfigurationsfil för MQTT-koordinatorn. Mer information finns i Advanced MQTT Broker config and Configure core MQTT broker settings (Avancerade MQTT-koordinatorkonfigurationer och Konfigurera grundläggande MQTT-koordinatorinställningar).

Visa standardinställningar för mäklare

Så här visar du inställningarna för standardkoordinatorn:

  1. I Azure Portal går du till din IoT Operations-instans.
  2. Under Komponenter väljer du MQTT Broker.
  3. Under Mäklarinformation välj JSON-vy.