Omówienie funkcji brokera MQTT w usłudze Azure Event Grid

Usługa Azure Event Grid umożliwia klientom MQTT komunikowanie się ze sobą i z usługami platformy Azure w celu obsługi rozwiązań Internetu rzeczy (IoT).

Funkcja brokera MQTT usługi Azure Event Grid umożliwia wykonanie następujących scenariuszy:

  • Pozyskiwanie danych telemetrycznych przy użyciu wzorca obsługi komunikatów wiele do jednego. Ten wzorzec umożliwia aplikacji odciążenie obciążenia związanego z zarządzaniem dużą liczbą połączeń z urządzeniami z usługą Event Grid.
  • Kontrolowanie klientów MQTT przy użyciu wzorca obsługi komunikatów typu żądanie-odpowiedź (jeden do jednego). Ten wzorzec umożliwia każdemu klientowi komunikowanie się z żadnym innym klientem bez ograniczeń, niezależnie od ról klientów.
  • Emituj alerty do floty klientów przy użyciu wzorca obsługi komunikatów jeden do wielu. Ten wzorzec umożliwia aplikacji publikowanie tylko jednego komunikatu replikowanego przez usługę dla każdego zainteresowanego klienta.
  • Integrowanie danych z klientów MQTT przez routing komunikatów MQTT do usług platformy Azure i elementów webhook za pośrednictwem funkcji dostarczania wypychania HTTP. Ta integracja z usługami platformy Azure umożliwia tworzenie potoków danych rozpoczynających się od pozyskiwania danych z urządzeń IoT.

Przykłady kodu, które przedstawiają te scenariusze w tym repozytorium.

Broker MQTT jest idealny do implementacji scenariuszy motoryzacyjnych i mobilnych, między innymi. Zapoznaj się z architekturą referencyjną, aby dowiedzieć się, jak tworzyć bezpieczne i skalowalne rozwiązania do łączenia milionów pojazdów z chmurą przy użyciu usług obsługi komunikatów i analizy danych platformy Azure.

High-level diagram of Event Grid that shows bidirectional MQTT communication with publisher and subscriber clients.

Najważniejsze pojęcia

Poniżej przedstawiono listę kluczowych pojęć związanych z funkcją brokera MQTT usługi Azure Event Grid.

MQTT

MQTT to protokół transportu komunikatów publikuj-subskrybujący, który został zaprojektowany dla środowisk ograniczonych. Jest to standard komunikacji dla scenariuszy IoT ze względu na wydajność, skalowalność i niezawodność. Broker MQTT umożliwia klientom publikowanie i subskrybowanie komunikatów za pośrednictwem protokołu MQTT w wersji 3.1.1, MQTT w wersji 3.1.1 za pośrednictwem protokołów WebSocket, MQTT v5 i MQTT w wersji 5 za pośrednictwem protokołów WebSocket. Na poniższej liście przedstawiono niektóre najważniejsze funkcje brokera MQTT:

  • Funkcje MQTT v5:

    • Właściwości użytkownika umożliwiają dodawanie niestandardowych par klucz-wartość w nagłówku komunikatu w celu zapewnienia większego kontekstu dotyczącego komunikatu. Na przykład uwzględnij cel lub źródło komunikatu, aby odbiorca mógł efektywnie obsługiwać komunikat.
    • Wzorzec odpowiedzi na żądanie umożliwia klientom korzystanie ze standardowego wzorca asynchronicznego odpowiedzi na żądanie, określając temat odpowiedzi i identyfikator korelacji w żądaniu, aby klient odpowiedział bez wcześniejszej konfiguracji.
    • Interwał wygaśnięcia komunikatu umożliwia zadeklarowanie brokera MQTT, kiedy lekceważyć komunikat, który nie jest już istotny lub prawidłowy. Na przykład zignoruj nieaktualne polecenia lub alerty.
    • Aliasy tematów pomagają klientom zmniejszyć rozmiar pola tematu, dzięki czemu transfer danych jest mniej kosztowny.
    • Maksymalny rozmiar komunikatu umożliwia klientom kontrolowanie maksymalnego rozmiaru komunikatu, który może obsłużyć z serwera.
    • Funkcja Maksymalna odbierania umożliwia klientom kontrolowanie szybkości komunikatów w zależności od ich możliwości, takich jak szybkość przetwarzania lub możliwości magazynowania.
    • Czyszczenie czasu rozpoczęcia i wygaśnięcia sesji umożliwia klientom optymalizowanie niezawodności i bezpieczeństwa sesji przez zachowanie informacji o subskrypcji i komunikatów klienta dla konfigurowalnego interwału czasu.
    • Potwierdzenia negatywne umożliwiają klientom efektywne reagowanie na różne kody błędów.
    • Pakiety rozłączania wysyłane przez serwer umożliwiają klientom wydajną obsługę rozłączeń.
  • Broker MQTT dodaje w przyszłości więcej funkcji MQTT v5, aby dostosować je do specyfikacji MQTT. Poniższe elementy szczegółowo opisują bieżące różnice między funkcjami obsługiwanymi przez brokera MQTT i specyfikacjami MQTT v5: Czy komunikat, zachowaj flagę, kolejność komunikatów i QoS 2 nie są obsługiwane.

  • Funkcje MQTT w wersji 3.1.1:

    • Sesje trwałe zapewniają niezawodność dzięki zachowaniu informacji o subskrypcji i komunikatach klienta w przypadku rozłączenia klienta.
    • QoS 0 i 1 zapewniają klientom kontrolę nad wydajnością i niezawodnością komunikacji.
  • Broker MQTT dodaje więcej funkcji MQTT w wersji 3.1.1 w przyszłości, aby dostosować je do specyfikacji MQTT. Poniższe elementy szczegółowo opisują bieżące różnice między funkcjami obsługiwanymi przez brokera MQTT i specyfikacją MQTT w wersji 3.1.1: Czy komunikat, flaga zachowaj, kolejność komunikatów i QoS 2 nie są obsługiwane.

Dowiedz się więcej na temat brokera MQTT i bieżących ograniczeń.

Model publikowania i subskrybowania komunikatów

Model obsługi komunikatów publikowania i subskrybowania zapewnia skalowalną i asynchroniczną komunikację z klientami. Umożliwia klientom odciążanie obciążenia obsługi dużej liczby połączeń i komunikatów z usługą. Za pomocą modelu obsługi komunikatów Publish-Subscribe klienci mogą efektywnie komunikować się przy użyciu wzorców obsługi komunikatów "jeden do wielu", "wiele do jednego" i "jeden do jednego".

  • Wzorzec obsługi komunikatów jeden do wielu umożliwia klientom publikowanie tylko jednego komunikatu replikowanego przez usługę dla każdego zainteresowanego klienta.
  • Wzorzec obsługi komunikatów wiele do jednego umożliwia klientom odciążanie obciążenia związanego z zarządzaniem dużą liczbą połączeń z brokerem MQTT.
  • Wzorzec obsługi komunikatów jeden do jednego umożliwia każdemu klientowi komunikowanie się z innym klientem bez ograniczeń, niezależnie od ról klientów.

Przestrzeń nazw

Przestrzeń nazw usługi Event Grid to kontener zarządzania dla zasobów obsługujących funkcje brokera MQTT wraz z zasobami obsługującymi funkcje dostarczania ściągania. Klient MQTT może nawiązać połączenie z brokerem MQTT i opublikować/subskrybować komunikaty, podczas gdy broker MQTT uwierzytelnia klientów, autoryzuje żądania publikowania/subskrybowania i przekazuje komunikaty do zainteresowanych klientów. Dowiedz się więcej na temat koncepcji przestrzeni nazw.

Klienci

Klienci odnoszą się do urządzeń lub aplikacji IoT, które publikują i subskrybują komunikaty MQTT.

Urządzenia IoT to obiekty fizyczne połączone z Internetem w celu przesyłania danych telemetrycznych i odbierania poleceń. Urządzenia te mogą być czujnikami, urządzeniami, maszynami lub innymi obiektami wyposażonymi w osadzone czujniki i oprogramowanie. Czujniki i oprogramowanie umożliwiają im komunikowanie się ze sobą i interakcję ze sobą oraz środowisko wokół nich. Wartość urządzeń IoT leży w ich zdolności do dostarczania danych i szczegółowych informacji w czasie rzeczywistym, umożliwiając firmom i osobom fizycznym podejmowanie świadomych decyzji oraz poprawę wydajności i produktywności.

Aplikacje IoT to oprogramowanie przeznaczone do interakcji i przetwarzania danych z urządzeń IoT. Zazwyczaj obejmują one składniki, takie jak zbieranie danych, przetwarzanie, magazyn, wizualizacja i analiza. Te aplikacje umożliwiają użytkownikom monitorowanie i kontrolowanie połączonych urządzeń, automatyzowanie zadań i uzyskiwanie szczegółowych informacji na podstawie danych generowanych przez urządzenia IoT.

Uwierzytelnianie klienta

Usługa Event Grid ma rejestr klienta, który przechowuje informacje o klientach, z którymi mogą się łączyć. Zanim klient będzie mógł nawiązać połączenie, musi istnieć wpis dla tego klienta w rejestrze klienta. Gdy klient łączy się z brokerem MQTT, musi uwierzytelniać się za pomocą brokera MQTT na podstawie poświadczeń przechowywanych w rejestrze tożsamości. Broker MQTT obsługuje uwierzytelnianie certyfikatów X.509, które jest standardem uwierzytelniania branżowego na urządzeniach IoT i identyfikatorze Entra firmy Microsoft, który jest standardem uwierzytelniania platformy Azure dla aplikacji.Dowiedz się więcej o uwierzytelnianiu klienta MQTT.

Kontrola dostępu

Kontrola dostępu ma kluczowe znaczenie dla scenariuszy IoT, biorąc pod uwagę ogromną skalę środowisk IoT oraz unikatowe wyzwania związane z zabezpieczeniami ograniczonych urządzeń. Usługa Event Grid zapewnia kontrolę dostępu opartą na rolach (RBAC) za pomocą elastycznego modelu kontroli dostępu, który umożliwia zarządzanie autoryzacją klientów w celu publikowania lub subskrybowania tematów.

Biorąc pod uwagę ogromną skalę środowisk IoT, przypisywanie uprawnień dla każdego klienta do każdego tematu jest niezwykle żmudne. Elastyczna kontrola dostępu usługi Event Grid zajmuje się tym wyzwaniem w skali poprzez grupowanie klientów i tematów w grupy klientów i przestrzenie tematów. Po utworzeniu grup klientów i obszarów tematów można skonfigurować powiązanie uprawnień w celu udzielenia dostępu grupie klientów do publikowania lub subskrybowania obszaru tematu.

Diagram of the access control model.

Przestrzenie tematów zapewniają również szczegółową kontrolę dostępu, umożliwiając kontrolowanie autoryzacji każdego klienta w grupie klienta w celu publikowania lub subskrybowania własnego tematu. Ta szczegółowa kontrola dostępu jest osiągana przy użyciu zmiennych w szablonach tematów. Dowiedz się więcej o kontroli dostępu.

Routing

Usługa Event Grid umożliwia kierowanie komunikatów MQTT do usług platformy Azure lub elementów webhook w celu dalszego przetwarzania. W związku z tym można tworzyć kompleksowe rozwiązania przy użyciu danych IoT na potrzeby analizy danych, magazynu i wizualizacji, między innymi przypadków użycia. Konfiguracja routingu umożliwia wysyłanie wszystkich komunikatów MQTT z klientów do tematu przestrzeni nazw usługi Event Grid lub tematu niestandardowego usługi Event Grid. Gdy komunikaty znajdują się w temacie, możesz skonfigurować subskrypcję zdarzeń, aby korzystać z komunikatów z tematu. Na przykład ta funkcja umożliwia kierowanie danych telemetrycznych z urządzeń IoT do usługi Event Hubs za pomocą usługi Event Grid, a następnie do usługi Azure Stream Analytics w celu uzyskania szczegółowych informacji z telemetrii urządzenia. Dowiedz się więcej o routingu.

Diagram of the MQTT message routing.

Integracja brokera MQTT usługi Edge

Usługa Event Grid integruje się z usługą Azure IoT MQQ, aby połączyć możliwości brokera MQTT na urządzeniach brzegowych z funkcją brokera MQTT usługi Azure Event Grid w chmurze. Azure IoT MQ to nowy rozproszony broker MQTT do przetwarzania brzegowego działający w klastrach Kubernetes z obsługą usługi Arc. Może łączyć się z brokerem MQTT usługi Event Grid za pomocą uwierzytelniania microsoft Entra ID (dawniej Azure Active Directory) przy użyciu tożsamości zarządzanej przypisanej przez system, co upraszcza zarządzanie poświadczeniami. Usługa Azure IoT MQ zapewnia wysoką dostępność, skalowalność i zabezpieczenia dla urządzeń i aplikacji IoT. Jest ona teraz dostępna w publicznej wersji zapoznawczej w ramach operacji usługi Azure IoT. Dowiedz się więcej na temat łączenia usługi Azure IoT MQ z brokerem MQTT usługi Azure Event Grid.

Zdarzenia cyklu życia klientów MQTT

Zdarzenia cyklu życia klienta umożliwiają aplikacjom reagowanie na zdarzenia dotyczące stanu połączenia klienta lub operacji zasobów klienta. Dzięki temu można śledzić stan połączenia klienta, reagować za pomocą akcji ograniczania ryzyka dla rozłączeń klientów i śledzić przestrzeń nazw, do której klienci są dołączani podczas automatycznych przełączeń w tryb failover. Dowiedz się więcej o zdarzeniach cyklu życia klienta MQTT.

Następne kroki

Skorzystaj z poniższych artykułów, aby dowiedzieć się więcej na temat brokera MQTT i jego głównych pojęć.

Pojęcia