IoT Hub en betrouwbaarheid
Azure IoT Hub is een beheerde service die wordt gehost in de cloud die fungeert als een centrale berichtenhub voor communicatie tussen een IoT-toepassing en de bijbehorende apparaten. U kunt miljoenen apparaten en hun back-endoplossingen betrouwbaar en veilig verbinden. Bijna elk apparaat kan worden verbonden met een IoT Hub.
IoT Hub ondersteunt bewaking om het maken van apparaten, apparaatverbindingen en apparaatfouten bij te houden.
IoT Hub ondersteunt ook de volgende berichtpatronen:
- Apparaat-naar-cloud-telemetrie
- Bestanden uploaden vanaf apparaten
- Methoden voor het beantwoorden van aanvragen om uw apparaten vanuit de cloud te beheren
Raadpleeg ioT-concepten en Azure IoT Hub voor meer informatie over IoT Hub.
Raadpleeg de volgende onderwerpen om te begrijpen hoe IoT Hub ondersteuning biedt voor een betrouwbare workload:
- Hoge beschikbaarheid en herstel na noodgevallen van IoT Hub
- Hoge beschikbaarheid tussen regio's bereiken met IoT Hub
- Een Azure IoT Hub klonen naar een andere regio
De volgende secties zijn specifiek voor Azure IoT Hub en betrouwbaarheid:
- Ontwerpoverwegingen
- Controlelijst voor configuratie
- Aanbevolen configuratieopties
Ontwerpoverwegingen
Raadpleeg de SLA voor Azure IoT Hub voor Azure IoT Hub voor meer informatie over de Service Level Agreement van Azure IoT Hub.
Checklijst
Hebt u Azure IoT Hub geconfigureerd met betrouwbaarheid in het achterhoofd?
- Richt een tweede IoT Hub in een andere regio in en heb routeringslogica op het apparaat.
- Gebruik het
AMQP
ofMQTT
protocol bij het regelmatig verzenden van gebeurtenissen. - Gebruik alleen certificaten die zijn gevalideerd door een basis-CA in de productieomgeving als u X.509-certificaten gebruikt voor de apparaatverbinding.
- Voor maximale doorvoer gebruikt u het maximum aantal partities (
32
) bij het maken van de IoT Hub, als u van plan bent om het ingebouwde eindpunt te gebruiken. - Verhoog voor schalen de laag en toegewezen IoT Hub-eenheden in plaats van meer dan één IoT Hub per regio toe te voegen.
- Gebruik in scenario's met hoge doorvoer batchgebeurtenissen.
- Als u de minimale latentie nodig hebt, gebruikt u geen routering en leest u de gebeurtenissen van het ingebouwde eindpunt niet.
- Als onderdeel van uw oplossingsbrede beschikbaarheids- en herstelstrategie voor noodgevallen kunt u overwegen de optie Voor herstel na noodgevallen in verschillende regio's van IoT Hub te gebruiken.
- Raadpleeg de aanbeveling van de Event Hub-consumenten bij het lezen van apparaattelemetrie van het ingebouwde Event Hub-compatibele eindpunt.
- Wanneer u een SDK gebruikt om gebeurtenissen naar IoT Hubs te verzenden, moet u ervoor zorgen dat de uitzonderingen die worden gegenereerd door het beleid voor opnieuw proberen (
EventHubsException
ofOperationCancelledException
) correct worden afgevangen. - Als u telemetrieonderbreking wilt voorkomen vanwege beperking en een volledig gebruikt quotum, kunt u een aangepaste oplossing voor automatisch schalen toevoegen.
Aanbevelingen voor configuratie
Overweeg de volgende aanbevelingen om de betrouwbaarheid te optimaliseren bij het configureren van Azure IoT Hub:
Aanbeveling | Beschrijving |
---|---|
Richt een tweede IoT Hub in een andere regio in en heb routeringslogica op het apparaat. | Deze configuraties kunnen verder worden uitgebreid met een Concierge-service. |
Gebruik het AMQP of MQTT protocol bij het regelmatig verzenden van gebeurtenissen. |
AMQP en MQTT hogere netwerkkosten hebben bij het initialiseren van de sessie, maar vereist extra HTTPS TLS-overhead voor elke aanvraag. AMQP en MQTT hogere prestaties hebben voor frequente uitgevers. |
Gebruik alleen certificaten die zijn gevalideerd door een basis-CA in de productieomgeving als u X.509-certificaten gebruikt voor de apparaatverbinding. | Zorg ervoor dat u processen hebt om het certificaat bij te werken voordat ze verlopen. |
Voor maximale doorvoer gebruikt u het maximum aantal partities (32 ) bij het maken van de IoT Hub, als u van plan bent om het ingebouwde eindpunt te gebruiken. |
Het aantal apparaat-naar-cloudpartities voor het event hub-compatibele eindpunt weerspiegelt de mate van downstreamparallelisme dat u kunt bereiken. Hierdoor kunt u omhoog schalen naar 32 gelijktijdige verwerkingsentiteiten en biedt u de hoogste beschikbaarheid voor verzenden en ontvangen. Dit nummer kan niet worden gewijzigd na het maken. |
Verhoog voor schalen de laag en toegewezen IoT Hub-eenheden in plaats van meer dan één IoT Hub per regio toe te voegen. | Het toevoegen van meer dan één IoT Hub per regio biedt geen extra tolerantie omdat alle hubs op hetzelfde onderliggende cluster kunnen worden uitgevoerd. |
Gebruik in scenario's met hoge doorvoer batchgebeurtenissen. | De service levert een matrix met meerdere gebeurtenissen aan de consumenten, in plaats van een matrix met één gebeurtenis. De verbruikende toepassing moet deze matrices verwerken. |
Als u de minimale latentie nodig hebt, gebruikt u geen routering en leest u de gebeurtenissen van het ingebouwde eindpunt niet. | Wanneer u berichtroutering gebruikt in IoT Hub, neemt de latentie van de berichtbezorging toe. De latentie mag gemiddeld niet groter zijn, 500 ms maar er is geen garantie voor de leveringslatentie. |
Als onderdeel van uw oplossingsbrede beschikbaarheids- en herstelstrategie voor noodgevallen kunt u overwegen de optie Voor herstel na noodgevallen in verschillende regio's van IoT Hub te gebruiken. | Met deze optie wordt het IoT Hub-eindpunt verplaatst naar de gekoppelde Azure-regio. Alleen het apparaatregister wordt gerepliceerd. Gebeurtenissen worden niet gerepliceerd naar de secundaire regio. De RTO voor de door de klant geïnitieerde failover ligt tussen 10 minuten en een paar uur. Voor een door Microsoft geïnitieerde failover is 2-26 de RTO uren. Controleer of deze RTO overeenkomt met de vereisten van de klant en past in de bredere beschikbaarheidsstrategie. Als een hogere RTO is vereist, kunt u overwegen om een failoverpatroon aan de clientzijde te implementeren. |
Wanneer u een SDK gebruikt om gebeurtenissen naar IoT Hub te verzenden, moet u ervoor zorgen dat de uitzonderingen die worden gegenereerd door het beleid voor opnieuw proberen (EventHubsException of OperationCancelledException ) correct worden afgevangen. |
Implementeer bij gebruik HTTPS een correct patroon voor opnieuw proberen. |