Sdílet prostřednictvím


Vestavěný místní zprostředkovatel MQTT pro operace Azure IoT

Důležité

Tato stránka obsahuje pokyny ke správě komponent operací Azure IoT pomocí manifestů nasazení Kubernetes, které jsou ve verzi Preview. Tato funkce je poskytována s několika omezeními a neměla by se používat pro produkční úlohy.

Právní podmínky, které platí pro funkce Azure, které jsou ve verzi beta, verzi Preview nebo které zatím nejsou veřejně dostupné, najdete v Dodatečných podmínkách použití pro Microsoft Azure verze Preview.

V rámci operací Azure IoT je zahrnut zprostředkovatel MQTT, který je určen pro podnikové použití a splňuje normy. Zprostředkovatel MQTT je škálovatelný, vysoce dostupný a nativní Kubernetes. Poskytuje rovinu zasílání zpráv pro operace IoT, umožňuje obousměrnou komunikaci od hraničního zařízení do cloudu a podporuje aplikace řízené událostmi na hraniční komunikační úrovni.

Dodržování předpisů MQTT

MQTT je běžný protokol v prostoru IoT. Jeho jednoduchý návrh umožňuje jednomu zprostředkovateli obsluhovat tisíce klientů současně s jednoduchým vytvářením a správou témat publikování a odběru. Mnoho zařízení IoT nativně podporuje MQTT. Podřízené brány překladu převádějí různé protokoly IoT na MQTT.

Zprostředkovatel MQTT podporuje vrstvu zasílání zpráv v operacích IoT a je kompatibilní s MQTT v3.1.1 a MQTT v5. Další informace o podporovaných funkcích MQTT najdete v tématu Podpora funkcí MQTT ve zprostředkovateli MQTT.

Architektura

Zprostředkovatel MQTT má dvě hlavní vrstvy:

  • Bezstavová frontendová vrstva
  • Stavová a shardovaná backendová vrstva

Front-endová vrstva zpracovává připojení a požadavky klientů a směruje je do back-endu. Backendová vrstva rozděluje data podle klíčů, jako je ID klienta pro relace klienta a název tématu pro zprávy k tématu. Back-endová vrstva používá řetězovou replikaci ke kopírování dat v rámci každého oddílu.

Cílem architektury je:

  • Odolnost proti chybám a izolace: Publikování zpráv pokračuje v případě selhání back-endových podů a selhání se nešířijí do zbytku systému.
  • Obnovení po selhání: Automatické zotavení bez zásahu operátora.
  • Žádná ztráta zpráv: Zprávy se doručí, pokud je spuštěn alespoň jeden frontendový a jeden backendový pod v oddílu.
  • Elastické škálování: Horizontální škálování propustnosti publikování a odběru podporuje nasazení na okraji sítě a v cloudu.
  • Konzistentní výkon ve velkém měřítku: Omezuje režii na latenci zpráv kvůli řetězové replikaci.
  • Jednoduchost provozu: Snižuje závislost na externích komponentách, aby se zjednodušila údržba a složitost.

Konfigurace

Pro konfiguraci používá zprostředkovatel MQTT několik vlastních prostředků Kubernetes k definování různých aspektů chování a funkcí zprostředkovatele:

  • Hlavním prostředkem je Broker, který definuje globální nastavení, jako je kardinalita, profil využití paměti a nastavení diagnostiky.
  • Prostředek zprostředkovatele může mít až tři BrokerListeners, z nichž každý naslouchá příchozím připojením MQTT na zadaném typu služby (NodePort, LoadBalancernebo ClusterIP). Každý prostředek BrokerListener může mít více portů.
  • Každý port v rámci prostředku BrokerListener může být přidružený k prostředku BrokerAuthentication a prostředku BrokerAuthorization. Tyto zásady ověřování a autorizace určují, kteří klienti se můžou připojit k portu a jaké akce můžou u zprostředkovatele provádět.

Vztah mezi zprostředkovatelem a BrokerListener je 1:N, zatímco vztah mezi BrokerListener a BrokerAuthentication/BrokerAuthorization je M:N. Diagram vztahů entit pro tyto prostředky:

Diagram znázorňující model prostředků zprostředkovatele

Operace IoT ve výchozím nastavení nasadí výchozího zprostředkovatele, výchozího posluchače zprostředkovatelů (BrokerListener) a výchozí ověřování zprostředkovatelů (BrokerAuthentication). Všechny tyto prostředky jsou pojmenované jako výchozí. Tyto prostředky společně poskytují základní nastavení zprostředkovatele MQTT potřebné pro fungování operací IoT. Výchozí nastavení je:

Diagram znázorňující výchozí prostředky zprostředkovatele a vztahy mezi nimi

Důležité

Abyste se vyhnuli narušení komunikace mezi interními komponentami operací IoT, neupravujte žádnou výchozí konfiguraci.

Pokud chcete přizpůsobit nasazení zprostředkovatele MQTT, přidejte do výchozího zprostředkovatele nové prostředky, jako jsou BrokerListeners, BrokerAuthentication a BrokerAuthorization.

Prostředek zprostředkovatele je neměnný a po nasazení není možné ho upravovat, ale vyžaduje přizpůsobení pouze v pokročilých scénářích. Další informace o přizpůsobení zdroje Brokeru naleznete v dokumentu Přizpůsobení výchozího Brokeru.

V úplném nasazení můžete mít více BrokerListeners, z nichž každý má více portů a každý port může mít přidružené jiné prostředky BrokerAuthentication a BrokerAuthorization.

Například od výchozího nastavení přidáte:

  • LoadBalancer BrokerListener s názvem example-lb-listener, se dvěma porty 1883 a 8883.
  • NodePort BrokerListener s názvem example-nodeport-listener s jedním portem 1884 (nodePort 31884).
  • Prostředek BrokerAuthentication s názvem example-authn s vlastní metodou ověřování.
  • Prostředek BrokerAuthorization s názvem example-authz s vlastním nastavením autorizace.

Pokud nakonfigurujete všechny nové porty se stejnými prostředky BrokerAuthentication a BrokerAuthorization, nastavení vypadá takto:

Diagram znázorňující plně přizpůsobené nasazení zprostředkovatele a vztahy mezi jednotlivými nasazeními

Tento přístup zachová výchozí nastavení beze změny a umožňuje přidat nové prostředky pro přizpůsobení nasazení zprostředkovatele MQTT.

Výchozí zdroj pro makléře

Každé nasazení operací IoT může mít pouze jednoho zprostředkovatele a musí mít název výchozí. Je potřeba výchozí zdroj zprostředkovatele, aby operace IoT fungovaly. Je neměnný a po nasazení není možné ho změnit.

Upozornění

Neodstraňujte výchozí zdroj zprostředkovatele. Tím dojde k narušení komunikace mezi interními komponentami operací IoT a nasazení přestane fungovat.

Přizpůsobte výchozího zprostředkovatele

Přizpůsobení výchozího zdroje makléře není pro většinu nastavení nutné. Mezi nastavení, která vyžadují přizpůsobení, patří:

  • Kardinalita: Určuje kapacitu zprostředkovatele pro zpracování více připojení a zpráv a zvyšuje vysokou dostupnost v případě selhání podu nebo uzlů.
  • Profil paměti: Nastaví maximální využití paměti zprostředkovatele a způsob zpracování využití paměti při vertikálním navýšení kapacity zprostředkovatele.
  • Vyrovnávací paměť zpráv podporovaná diskem: Konfigurace pro ukládání zpráv na disk, jakmile se RAM zaplňuje.
  • Nastavení diagnostiky: Konfigurace pro nastavení diagnostiky, jako je úroveň protokolu a koncový bod metrik.
  • Pokročilé možnosti klienta MQTT: Konfigurace pokročilých možností klienta MQTT, jako je vypršení platnosti relace, vypršení platnosti zpráv a nastavení zachování stavu.
  • Šifrování interního provozu: Konfigurace pro šifrování interního provozu mezi front-endem zprostředkovatele a back-endovými pody.

Výchozího zprostředkovatele můžete přizpůsobit pouze během počátečního nasazení pomocí Azure CLI nebo webu Azure Portal. Pokud potřebujete jiné nastavení konfigurace zprostředkovatele, vyžaduje se nové nasazení.

Přizpůsobení výchozího zprostředkovatele během nasazování:

Když budete postupovat podle průvodce nasazením operací IoT, v části Konfigurace se podívejte do konfigurace zprostředkovatele MQTT. Tady můžete přizpůsobit nastavení kardinality a profilu paměti. Pokud chcete nakonfigurovat další nastavení, včetně vyrovnávací paměti zpráv založeného na disku a pokročilých možností klienta MQTT, použijte Azure CLI.

Důležité

Po počátečním nasazení nelze prostředek zprostředkovatele aktualizovat. Změny konfigurace kardinality, profilu paměti nebo vyrovnávací paměti na disku nejsou povoleny po nasazení.

Jako alternativní řešení můžete při nasazování operací Azure IoT pomocí příkazu az iot ops init zahrnout --broker-config-file parametr s konfiguračním souborem JSON pro zprostředkovatele MQTT. Další informace najdete v tématu Pokročilá konfigurace zprostředkovatele MQTT a Konfigurace základního nastavení zprostředkovatele MQTT.

Zobrazení výchozího nastavení zprostředkovatele

Zobrazení nastavení výchozího zprostředkovatele:

  1. Na webu Azure Portal přejděte do vaší instance ioT Operations.
  2. V části Součásti vyberte Zprostředkovatele MQTT.
  3. V části Podrobnosti zprostředkovatele vyberte JSON zobrazení.