Udostępnij za pośrednictwem


IoT Hub i niezawodność

azure IoT Hub to zarządzana usługa hostowana w chmurze, która działa jako centralne centrum komunikatów do komunikacji między aplikacją IoT a dołączonymi urządzeniami. Miliony urządzeń i ich rozwiązań zaplecza można połączyć niezawodnie i bezpiecznie. Prawie każde urządzenie można połączyć z usługą IoT Hub.

Usługa IoT Hub obsługuje monitorowanie, aby ułatwić śledzenie tworzenia urządzeń, połączeń urządzeń i awarii urządzeń.

Usługa IoT Hub obsługuje również następujące wzorce obsługi komunikatów:

  • Telemetria z urządzenia do chmury
  • Przekazywanie plików z urządzeń
  • Metody żądania odpowiedzi w celu kontrolowania urządzeń z chmury

Aby uzyskać więcej informacji na temat usługi IoT Hub, zapoznaj się z tematem Pojęcia dotyczące IoT i usługi Azure IoT Hub.

Aby dowiedzieć się, jak usługa IoT Hub obsługuje niezawodne obciążenie, zapoznaj się z następującymi tematami:

Poniższe sekcje dotyczą usługi Azure IoT Hub i niezawodności:

  • Zagadnienia dotyczące projektowania
  • Lista kontrolna konfiguracji
  • Zalecane opcje konfiguracji

Zagadnienia dotyczące projektowania

Aby uzyskać więcej informacji na temat umowy dotyczącej poziomu usług usługi Azure IoT Hub, zapoznaj się z umową SLA dla usługi Azure IoT Hub.

Lista kontrolna

Czy skonfigurowano usługę Azure IoT Hub z myślą o niezawodności?

  • Udostępnij drugą usługę IoT Hub w innym regionie i ustanów logikę routingu na urządzeniu.
  • Użyj protokołu AMQP lub MQTT podczas częstego wysyłania zdarzeń.
  • Użyj tylko certyfikatów zweryfikowanych przez główny urząd certyfikacji w środowisku produkcyjnym, jeśli używasz certyfikatów X.509 dla połączenia urządzenia.
  • Aby uzyskać maksymalną przepływność, użyj maksymalnej liczby partycji (32) podczas tworzenia usługi IoT Hub, jeśli planujesz użyć wbudowanego punktu końcowego.
  • W przypadku skalowania zwiększ warstwę i przydzielone jednostki usługi IoT Hub zamiast dodawać więcej niż jedną usługę IoT Hub na region.
  • W scenariuszach o wysokiej przepływności korzystaj ze zdarzeń wsadowych.
  • Jeśli potrzebujesz minimalnego możliwego opóźnienia, nie używaj routingu i odczytuj zdarzeń z wbudowanego punktu końcowego.
  • W ramach strategii dostępności i odzyskiwania po awarii w całym rozwiązaniu rozważ użycie opcji odzyskiwania po awarii między regionami usługi IoT Hub .
  • Jeśli używasz zestawu SDK do wysyłania zdarzeń do usługi IoT Hubs, upewnij się, że wyjątki zgłaszane przez zasady ponawiania (EventHubsException lub OperationCancelledException) są prawidłowo przechwytywane.
  • Aby uniknąć przerw w telemetrii spowodowanych ograniczaniem przepustowości i pełnym wykorzystaniem limitu przydziału, warto rozważyć wprowadzenie niestandardowego rozwiązania do automatycznego skalowania .

Zalecenia dotyczące konfiguracji

Podczas konfigurowania usługi Azure IoT Hub należy wziąć pod uwagę następujące zalecenia, aby zoptymalizować niezawodność:

Zalecenie Opis
Skonfiguruj drugi IoT Hub w innym regionie i zaimplementuj logikę routingu na urządzeniu. Te konfiguracje można dodatkowo ulepszyć za pomocą usługi Concierge.
Użyj protokołu AMQP lub MQTT podczas częstego wysyłania zdarzeń. AMQP i MQTT mają wyższe koszty sieci podczas inicjowania sesji, jednak HTTPS wymaga dodatkowych obciążeń związanych z protokołem TLS dla każdego żądania. AMQP i MQTT mają lepszą wydajność dla częstych wydawców.
Użyj tylko certyfikatów zweryfikowanych przez główny urząd certyfikacji w środowisku produkcyjnym, jeśli używasz certyfikatów X.509 dla połączenia urządzenia. Upewnij się, że istnieją procesy aktualizacji certyfikatu przed ich wygaśnięciem.
Aby uzyskać maksymalną przepływność, użyj maksymalnej liczby partycji (32) podczas tworzenia usługi IoT Hub, jeśli planujesz użyć wbudowanego punktu końcowego. Liczba partycji urządzenie-chmura dla punktu końcowego zgodnego z centrum zdarzeń odzwierciedla stopień równoległości podrzędnej, którą można osiągnąć. Umożliwi to skalowanie w górę do 32 współbieżnych jednostek przetwarzania i zapewni najwyższą dostępność wysyłania i odbierania. Nie można zmienić tej liczby po utworzeniu.
W przypadku skalowania zwiększ warstwę i przydziel liczbę jednostek usługi IoT Hub zamiast dodawać więcej niż jedną usługę IoT Hub w jednym regionie. Dodanie więcej niż jednego centrum IoT Na region nie zapewnia dodatkowej odporności, ponieważ wszystkie centra mogą działać w tym samym klastrze bazowym.
W scenariuszach o wysokiej przepływności użyj zdarzeń wsadowych. Usługa dostarczy tablicę z wieloma zdarzeniami do odbiorców zamiast tablicy z jednym zdarzeniem. Aplikacja zużywana musi przetwarzać te tablice.
Jeśli potrzebujesz minimalnego możliwego opóźnienia, nie używaj routingu i odczytuj zdarzeń z wbudowanego punktu końcowego. W przypadku korzystania z routingu komunikatów w usłudze IoT Hub opóźnienie dostarczania komunikatów zwiększa się. Średnio opóźnienie nie powinno przekraczać 500 ms, ale nie ma żadnej gwarancji dla opóźnienia dostarczania.
W ramach strategii ogólnodostępności i odzyskiwania po awarii rozwiązań rozważ użycie opcji międzyregionalnego odzyskiwania po awarii IoT Hub . Ta opcja spowoduje przeniesienie punktu końcowego usługi IoT Hub do sparowanego regionu świadczenia usługi Azure. Tylko rejestr urządzeń jest replikowany. Zdarzenia nie są replikowane do regionu pomocniczego. Cel czasu odzyskiwania (RTO) dla awaryjnego przełączenia zainicjowanego przez klienta wynosi od 10 minut do kilku godzin. W przypadku przełączenia awaryjnego zainicjowanego przez firmę Microsoft RTO wynosi 2-26 godzin. Zweryfikuj, czy ten RTO jest zgodny z wymaganiami klienta i pasuje do szerszej strategii dostępności. Jeśli wymagany jest wyższy cel czasu odzyskiwania, rozważ zaimplementowanie wzorca trybu failover po stronie klienta.
W przypadku używania zestawu SDK do wysyłania zdarzeń do usługi IoT Hub upewnij się, że wyjątki zgłaszane przez politykę ponawiania prób (EventHubsException lub OperationCancelledException) są prawidłowo przechwytywane. W przypadku korzystania z HTTPSzaimplementuj odpowiedni wzorzec ponawiania.

Następny krok