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 gekoppelde 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:
- Telemetrie van apparaat naar cloud
- Bestanden uploaden vanaf apparaten
- Methoden voor het beantwoorden van aanvragen om uw apparaten vanuit de cloud te beheren
Raadpleeg IoT Concepts en Azure IoT Hubvoor 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 in meerdere 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 SLA voor Azure IoT Hubvoor meer informatie over de Service Level Agreement van Azure IoT Hub.
Controlelijst
Hebt u Azure IoT Hub geconfigureerd met het oog op betrouwbaarheid?
- Richt een tweede IoT Hub in een andere regio in en heb routeringslogica op het apparaat.
- Gebruik het protocol
AMQP
ofMQTT
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 opschaling het niveau en de 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 oplossingsgerichte beschikbaarheid en rampenherstelstrategie kunt u overwegen om de optie voor rampenherstel in meerdere regio's te gebruiken.
- 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. - Om telemetrieonderbreking door beperking en een volledig gebruikt quotum te voorkomen, kunt u een aangepaste automatische schaaloplossing 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 protocol AMQP of MQTT bij het regelmatig verzenden van gebeurtenissen. |
AMQP en MQTT hebben hogere netwerkkosten bij het initialiseren van de sessie, maar HTTPS vereist extra TLS-overhead voor elke aanvraag.
AMQP en MQTT hebben betere prestaties 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. |
Als u wilt schalen, verhoog dan het niveau en de 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 hoger zijn dan 500 ms , maar er is geen garantie voor de leveringslatentie. |
Als onderdeel van uw strategie voor oplossingsbrede beschikbaarheid en rampenherstel kunt u overwegen om de cross-regionale rampenhersteloptie 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 Recovery Time Objective (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 de RTO 2-26 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. |
Wanneer u HTTPS gebruikt, implementeert u een juist patroon voor opnieuw proberen. |