IoT Hub und Zuverlässigkeit
Azure IoT Hub ist ein verwalteter Dienst, der in der Cloud gehostet wird und als zentraler Nachrichten-Hub für die Kommunikation zwischen einer IoT-Anwendung und deren angeschlossenen Geräten fungiert. Sie können Millionen von Geräten und deren Back-End-Lösungen zuverlässig und sicher verbinden. Fast jedes Gerät kann mit einem IoT Hub verbunden werden.
IoT Hub unterstützt Überwachung, um die Geräteerstellung, Geräteverbindungen und Gerätefehler nachzuverfolgen.
Außerdem werden von IoT Hub die folgenden Messagingmuster unterstützt:
- Gerät-zu-Cloud-Telemetrie
- Hochladen von Dateien von Geräten
- Anforderung-Antwort-Methoden zum Steuern Ihrer Geräte über die Cloud
Weitere Informationen zu IoT Hub finden Sie unter IoT-Konzepte und Azure IoT Hub.
In den folgenden Themen erfahren Sie, wie IoT Hub eine zuverlässige Workload unterstützt:
- Hochverfügbarkeit und Notfallwiederherstellung von IoT Hub
- Erzielen von regionsübergreifender Hochverfügbarkeit mit IoT Hub
- Klonen einer Azure IoT Hub-Instanz in eine andere Region
Die folgenden Abschnitte gelten speziell für Azure IoT Hub und die Zuverlässigkeit:
- Überlegungen zum Entwurf
- Prüfliste für die Konfiguration
- Empfohlene Konfigurationsoptionen
Überlegungen zum Entwurf
Weitere Informationen zur Vereinbarung zum Servicelevel (Service Level Agreement, SLA) für Azure IoT Hub finden Sie unter SLA für Azure IoT Hub.
Checkliste
Haben Sie Azure IoT Hub unter Berücksichtigung der Zuverlässigkeit konfiguriert?
- Stellen Sie eine zweite IoT Hub-Instanz in einer anderen Region und Routinglogik auf dem Gerät bereit.
- Verwenden Sie das
AMQP
- oderMQTT
-Protokoll, wenn Sie häufig Ereignisse senden. - Verwenden Sie nur Zertifikate, die von einer Stammzertifizierungsstelle in der Produktionsumgebung überprüft wurden, wenn Sie X.509-Zertifikate für die Geräteverbindung verwenden.
- Verwenden Sie für maximalen Durchsatz die maximale Anzahl von Partitionen (
32
) beim Erstellen der IoT Hub-Instanz, wenn Sie den integrierten Endpunkt verwenden möchten. - Erhöhen Sie für die Skalierung die Ebene und die IoT Hub-Einheiten, anstatt mehr als eine IoT Hub-Instanz pro Region hinzuzufügen.
- Verwenden Sie Batchereignisse in Szenarien mit hohem Durchsatz.
- Wenn die geringstmögliche Wartezeit erforderlich ist, verwenden Sie kein Routing, und lesen Sie die Ereignisse über den integrierten Endpunkt.
- Ziehen Sie im Rahmen Ihrer lösungsweiten Strategie für Verfügbarkeit und Notfallwiederherstellung die Verwendung der Option für regionsübergreifende Notfallwiederherstellung von IoT Hub in Betracht.
- Wenn Sie Gerätetelemetriedaten über den mit Event Hub kompatiblen integrierten Endpunkt lesen, finden Sie unter Event Hubs und Zuverlässigkeit weitere Informationen.
- Wenn Sie ein SDK zum Senden von Ereignissen an IoT Hub-Instanzen verwenden, stellen Sie sicher, dass die von der Wiederholungsrichtlinie ausgelösten Ausnahmen (
EventHubsException
oderOperationCancelledException
) ordnungsgemäß erfasst werden. - Um Telemetrieunterbrechungen aufgrund von Drosselung und einem vollständig genutzten Kontingent zu vermeiden, sollten Sie eine benutzerdefinierte Lösung für die automatische Skalierung hinzufügen.
Konfigurationsempfehlungen
Beachten Sie beim Konfigurieren von Azure IoT Hub die folgenden Empfehlungen zur Optimierung der Zuverlässigkeit:
Empfehlung | Beschreibung |
---|---|
Stellen Sie eine zweite IoT Hub-Instanz in einer anderen Region und Routinglogik auf dem Gerät bereit. | Diese Konfigurationen können mit einem Concierge-Dienst weiter optimiert werden. |
Verwenden Sie das AMQP - oder MQTT -Protokoll, wenn Sie häufig Ereignisse senden. |
AMQP und MQTT weisen höhere Netzwerkkosten beim Initialisieren der Sitzung auf, HTTPS erfordert jedoch zusätzlichen TLS-Mehraufwand für jede Anforderung. AMQP und MQTT verfügen über eine höhere Leistung für häufige Herausgeber. |
Verwenden Sie nur Zertifikate, die von einer Stammzertifizierungsstelle in der Produktionsumgebung überprüft wurden, wenn Sie X.509-Zertifikate für die Geräteverbindung verwenden. | Stellen Sie sicher, dass Prozesse implementiert wurden, um ein Zertifikat vor dem Ablauf zu aktualisieren. |
Verwenden Sie für maximalen Durchsatz die maximale Anzahl von Partitionen (32 ) beim Erstellen der IoT Hub-Instanz, wenn Sie den integrierten Endpunkt verwenden möchten. |
Die Anzahl von Gerät-zu-Cloud-Partitionen für den Event Hub-kompatiblen Endpunkt spiegelt den Grad der Downstreamparallelität wider, den Sie erreichen können. Dies ermöglicht das Hochskalieren auf 32 gleichzeitige Verarbeitungsentitäten und bietet die höchste Verfügbarkeit für Senden und Empfangen. Diese Anzahl kann nach der Erstellung nicht mehr geändert werden. |
Erhöhen Sie für die Skalierung die Ebene und die IoT Hub-Einheiten, anstatt mehr als eine IoT Hub-Instanz pro Region hinzuzufügen. | Das Hinzufügen von mehreren IoT Hub-Instanzen pro Region bietet keine zusätzliche Resilienz, da alle Hubs im gleichen zugrunde liegenden Cluster ausgeführt werden können. |
Verwenden Sie Batchereignisse in Szenarien mit hohem Durchsatz. | Der Dienst übermittelt ein Array mit mehreren Ereignissen an die Consumer, anstatt ein Array mit einem einzelnen Ereignis. Die verarbeitende Anwendung muss in der Lage sein, diese Arrays zu verarbeiten. |
Wenn die geringstmögliche Wartezeit erforderlich ist, verwenden Sie kein Routing, und lesen Sie die Ereignisse über den integrierten Endpunkt. | Bei Verwendung des Nachrichtenroutings in IoT Hub erhöht sich die Latenz bei der Nachrichtenübermittlung. Im Durchschnitt sollte die Latenz 500 ms nicht überschreiten. Es gibt jedoch keine Garantie für die Übermittlungslatenz. |
Ziehen Sie im Rahmen Ihrer lösungsweiten Strategie für Verfügbarkeit und Notfallwiederherstellung die Verwendung der Option für regionsübergreifende Notfallwiederherstellung von IoT Hub in Betracht. | Mit dieser Option wird der IoT Hub-Endpunkt in die gekoppelte Azure-Region verschoben. Nur die Geräteregistrierung wird repliziert. Ereignisse werden nicht in der sekundären Region repliziert. Die RTO für das vom Kunden initiierte Failover liegt zwischen zehn Minuten und einigen Stunden. Bei einem von Microsoft initiierten Failover beträgt die RTO 2-26 Stunden. Vergewissern Sie sich, dass diese RTO den Anforderungen des Kunden entspricht und zur allgemeinen Verfügbarkeitsstrategie passt. Wenn eine höhere RTO erforderlich ist, sollten Sie ein clientseitiges Failovermuster implementieren. |
Wenn Sie ein SDK zum Senden von Ereignissen an IoT Hub verwenden, stellen Sie sicher, dass die von der Wiederholungsrichtlinie ausgelösten Ausnahmen (EventHubsException oder OperationCancelledException ) ordnungsgemäß erfasst werden. |
Implementieren Sie bei Verwendung von HTTPS ein ordnungsgemäßes Wiederholungsmuster. |