Przypadki użycia MQTT: Do czego służy MQTT?

PubNub Developer Relations - Feb 7 - - Dev Community

Do czego służy MQTT?

MQTT to lekki protokół przesyłania wiadomości używany zazwyczaj w urządzeniach IoT, które zostały zaprojektowane tak, aby były energooszczędne i zużywały minimalną przepustowość.

Protokół MQTT działa za pośrednictwem protokołu TCP/IP i opiera się na dwukierunkowym modelu publikowania i subskrybowania z bezstratną komunikacją, zapewniając, że wiadomości MQTT są dostarczane wydajnie i bez strat.

MQTT został zbudowany jako protokół o niskim narzucie, który mocno uwzględnia ograniczenia przepustowości i procesora. Został zaprojektowany z myślą o działaniu w środowisku wbudowanym, gdzie niezawodnie i skutecznie zapewniałby drogę komunikacji.

MQTT jest zasadniczo protokołem typu publikuj/subskrybuj (pub/sub). Pozwala klientom łączyć się jako wydawca, subskrybent lub obaj z określonymi tematami. Użytkownik łączy się z brokerem, który obsługuje przekazywanie wszystkich wiadomości, gdzie każdy klient jest identyfikowany przez unikalny identyfikator klienta.

Rzeczywisty przykład i przypadek użycia MQTT

MQTT jest powszechnie używany w aplikacjach IoT do łączenia się i komunikowania z urządzeniami o niskim poborze mocy, takimi jak czujniki, siłowniki i urządzenia domowe, efektywnie zarządzając ładunkiem przesyłanych danych.

W rolnictwie MQTT służy do monitorowania czynników środowiskowych, takich jak wilgotność gleby, temperatura i wilgotność, umożliwiając rolnikom podjęcie odpowiednich działań. W automatyce przemysłowej MQTT może monitorować kompleksowy proces produkcyjny, zapewniając stałą jakość i identyfikując problemy systemowe w łańcuchu produkcyjnym. W transporcie MQTT jest używany do monitorowania sygnalizacji świetlnej, parkometrów i lokalizacji transportu publicznego w czasie rzeczywistym, przy jednoczesnym zachowaniu ekosystemu i niskich wymagań dotyczących przepustowości.

Dlaczego warto używać MQTT zamiast HTTP?

HTTP i MQTT to dwa bardzo różne protokoły komunikacyjne wykorzystywane do różnych celów.

HTTP to protokół typu żądanie/odpowiedź, który dostarcza dane tylko w odpowiedzi na żądanie klienta. Jest przeznaczony dla dużych ilości danych i jest powszechnie używany do przesyłania stron internetowych, obrazów i filmów. MQTT to protokół pub/sub, który umożliwia asynchroniczne dostarczanie wiadomości, przy czym wielu klientów może subskrybować pojedynczy temat i odbierać wiadomości od wydawcy lub wydawców. MQTT jest zoptymalizowany pod kątem niewielkich ilości danych, ale jest bardziej wydajny niż HTTP pod względem narzutu sieciowego i zużycia energii przez urządzenie, co czyni go odpowiednim wyborem dla aplikacji wymagających niskiej przepustowości i minimalnego zużycia energii, takich jak te zarządzane przez usługi AWS IoT.

W jakich językach napisany jest MQTT?

MQTT jest tylko protokołem i może być napisany w wielu językach. Jednak biblioteki klienckie MQTT - które są używane do komunikacji za pomocą protokołu MQTT - są dostępne w wielu językach, takich jak C/C++, Java, Python i JavaScript - w tym Node.js, Ruby, Go, PHP i Swift. Biblioteka kliencka MQTT komunikuje się za pośrednictwem brokera MQTT, który jest również dostępny w kilku językach programowania.

Jak działa MQTT?

MQTT jest niezwykle elastycznym protokołem, ale istnieją tylko dwa podstawowe podmioty: klient MQTT i broker MQTT.

Jak działają klienci MQTT?

Klientem MQTT może być dowolny punkt końcowy, który implementuje protokół MQTT. W przypadku IoT klientem jest podłączone urządzenie, takie jak czujnik, monitor lub płytka Arduino, ale MQTT nie ogranicza się do IoT, klientem może być również na przykład smartfon lub laptop.

Klienci MQTT nie komunikują się bezpośrednio ze sobą. Mimo to wszystkie interakcje są "pośredniczone" przez komponent serwerowy określany jako Broker MQTT, który znajduje się pomiędzy klientami i obsługuje routing wiadomości.

Czym jest grupowanie MQTT?

Cała komunikacja w MQTT jest pogrupowana w "tematy". Klienci MQTT mogą publikować wiadomości w tematach i subskrybować otrzymywanie wiadomości od innych. Temat może być dowolnym ciągiem znaków i jest przeznaczony do grupowania tematów o wspólnym zainteresowaniu, na przykład aktualizacje czujników byłyby publikowane w temacie, podobnie jak wiadomości na czacie grupowym, w zależności od przypadku użycia.

Czym jest broker MQTT?

Broker jest odpowiedzialny za zarządzanie tym, którzy klienci są subskrybentami poszczególnych tematów, odbieranie wiadomości publikowanych w danym temacie i wysyłanie tej wiadomości do każdego klienta subskrybującego aktualizacje. Gdy połączenie między klientem a brokerem zostanie utracone, broker jest również odpowiedzialny za buforowanie wiadomości i dostarczanie jej do klienta po ponownym nawiązaniu połączenia.

Jakie brokery MQTT są dostępne?

Broker MQTT ma fundamentalne znaczenie dla protokołu MQTT i może być uważany za serwer MQTT. Jak wspomniano wcześniej, broker znajduje się pomiędzy wszystkimi klientami i ułatwia komunikację.

Istnieje wiele brokerów MQTT, zarówno open source, jak i zastrzeżonych, a jedną z najważniejszych decyzji architektonicznych każdego wdrożenia opartego na MQTT jest sposób hostowania brokera. Ponieważ MQTT został zaprojektowany do działania na bardzo dużą skalę, każda architektura brokera będzie musiała się odpowiednio skalować. Większość wdrożeń korporacyjnych będzie polegać na hostowanych w chmurze, zastrzeżonych ofertach, więc nie mają one żadnych obaw związanych z infrastrukturą, chociaż dostępne są również opcje samodzielnego hostowania.

Siedząc pomiędzy całą komunikacją, broker może przechowywać wiadomości i prowadzić bezpieczny rejestr wszystkich sesji; klienci są od siebie odizolowani, więc bezpieczeństwo klienta i luki w zabezpieczeniach mogą być sandboxowane, a w zależności od topologii sieci, broker może zmniejszyć ruch w sieci jako całości i pozwala na bardziej wydajny routing.

Jak korzystać z MQTT i Pub/Sub

Każdy klient obsługujący protokół MQTT może subskrybować i publikować tematy, ale cała komunikacja odbywa się za pośrednictwem brokera, jak pokazano w przykładowym modelu poniżej.

Mamy własnego brokera MQTT, most MQTT, aby płynnie zintegrować PubNub z rozwiązaniem MQTT. Więcej informacji można znaleźć na końcu tego artykułu.

Funkcje protokołu MQTT

MQTT, choć często uważany za rozwiązanie IoT, jest po prostu protokołem, na którym opiera się wiele znanych produktów IoT. Wiele cech MQTT sprawia, że szczególnie dobrze nadaje się do wydajnej komunikacji między urządzeniami:

Łatwość uruchomienia

MQTT istnieje już od dłuższego czasu i istnieje wiele solidnych, niezawodnych i skalowalnych rozwiązań własnych i open-source. Te istniejące wcześniej komponenty MQTT mogą być używane we wszystkich projektach, od dużych rozwiązań po projekty pasjonackie, bez modyfikacji i niezależnie od doświadczenia programisty.

Niezawodność i konfiguracja

MQTT ma koncepcję jakości usług (QoS), omówioną szczegółowo później, która kolejkuje i buforuje wiadomości na brokerze MQTT, dostarczając je do klienta po ponownym nawiązaniu połączenia. Działa to szczególnie dobrze w przypadku częściowo podłączonych urządzeń lub klientów z przerywaną łącznością, takich jak urządzenia IoT.

Klient nie musi brać pod uwagę architektury rozwiązania

Dzięki MQTT publikujesz wiadomości do tematu i odbierasz je, gdy są dostępne. Jako klient nie musisz się martwić o nawiązanie lub ponowne nawiązanie połączenia ani o to, czy odbiorca (odbiorcy) nasłuchują twoich wiadomości, to "po prostu działa".

Zaprojektowany z myślą o skalowalności

MQTT może poradzić sobie z dowolną skalą wymaganego rozwiązania, od startupów po globalne firmy. Najbardziej znany Facebook Messenger używa MQTT do komunikacji.

Cykl życia sesji MQTT

MQTT opiera się na protokole TCP/IP w zakresie łączności, więc podąża za podobnym cyklem życia

Połączenie

Klient MQTT inicjuje połączenie z brokerem MQTT. Zazwyczaj odbywa się to za pośrednictwem standardowych portów MQTT(1883/883 odpowiednio dla bezpiecznych i niezabezpieczonych połączeń).

Uwierzytelnianie

Protokół MQTT nie ma żadnych względów uwierzytelniania poza TLS dla bazowego połączenia TCP/IP, co jest wystarczające dla większości przypadków użycia.

Publikowanie / subskrybowanie

Po nawiązaniu połączenia klienci mogą publikować lub subskrybować tematy w celu wysyłania i odbierania wiadomości.

Rozłączanie

Rozłączenie może być zainicjowane przez klienta lub brokera i spowoduje zakończenie sesji MQTT po przetworzeniu wszystkich trwających żądań.

Jakość usług MQTT (QoS)

Quality of Service pozwala projektantowi rozwiązania określić, jak niezawodne powinno być połączenie MQTT, ogólnie rzecz biorąc, im bardziej niezawodne połączenie, tym większy potencjalny narzut pamięci dla ponawiania prób i przechowywania wiadomości.

QoS -1

Wiadomość jest wysyłana tylko raz, a klient i broker nie podejmują żadnych dodatkowych kroków w celu potwierdzenia dostarczenia. Jest to również znane jako "odpal i zapomnij".

Dotyczy to tylko wiadomości wysyłanych przez klienta. Po odebraniu wiadomości przez brokera są one traktowane jako QoS 0

QoS 0

Nadawca i odbiorca angażują się w uzgadnianie, aby upewnić się, że otrzymano tylko jedną kopię wiadomości. Zapewnia to dostawę i pozwala uniknąć wysyłania wielu kopii wiadomości.

QoS 1

Wiadomość jest wysyłana wielokrotnie, dopóki odbiorca nie potwierdzi jej otrzymania. Działa to najlepiej w przypadku wiadomości wrażliwych na czas, ale może prowadzić do otrzymywania zduplikowanych wiadomości.

Przypadki użycia MQTT i IoT

MQTT to lekki i energooszczędny protokół, który przez lata był używany w rozwiązaniach, w których są to kluczowe kwestie.

IoT jest najpopularniejszym przykładem, w którym MQTT doskonale się sprawdza. Urządzenia IoT są zazwyczaj zasilane bateryjnie i mogą być bardzo drogie w utrzymaniu, więc preferowany jest długi czas między wymianami baterii. Podczas gdy w środowisku domowym nie jest trudno wymienić baterię od czasu do czasu, w środowisku przemysłowym, z tysiącami czujników, rozmieszczonych na dużym obszarze i często w bardzo trudno dostępnych miejscach, ich konserwacja może bardzo szybko stać się kosztowna.

Przypadki użyciaMQTT IoT obejmują czujniki przeciwpożarowe, śledzenie kradzieży, monitorowanie lokalizacji, czujniki, stan silnika itp. MQTT ma również bardzo niski narzut danych, więc w środowiskach, w których dane są drogie lub w których rozmieszczone są tysiące urządzeń, więc przepustowość jest problemem, MQTT jest idealnym rozwiązaniem.

PubNub i MQTT świetnie sprawdzają się w IoT. Zobacz nasze demo IoT i samouczek IoT, aby dowiedzieć się więcej o tym, jak PubNub i MQTT mogą zapewnić niezawodne, skalowalne i wydajne rozwiązanie IoT.

MQTT jest również bardzo popularny w komunikacji w czasie rzeczywistym, czego najbardziej znanym przykładem jest Facebook Messenger. Dlaczego Facebook zdecydował się na użycie MQTT? Ponieważ nie wyczerpuje baterii telefonu, nie zużywa nadmiernej ilości danych, działa na bezpiecznych protokołach, umożliwia skalowanie, łatwo ułatwia czaty grupowe i dystrybuuje wszystkie dane za pośrednictwem centralnej infrastruktury szkieletowej brokera MQTT.

Czy PubNub obsługuje przypadki użycia MQTT?

Jak najbardziej! PubNub zapewnia most MQTT oferujący bardzo niskie opóźnienia, co pozwala uniknąć konieczności wdrażania niestandardowego brokera MQTT i zapewnia prostą integrację z innymi funkcjami PubNub, takimi jak funkcje i przesyłanie strumieniowe danych.

Ponieważ PubNub został zaprojektowany wokół modelu publikuj-subskrybuj, bardzo dobrze odwzorowuje MQTT:

  • Publish / Subscribe: Pojęcia te są identyczne zarówno dla PubNub, jak i MQTT.

  • Kanały PubNub: Odpowiednikiem w MQTT jest "temat".

  • UUID: Zarówno PubNub, jak i MQTT mają koncepcję unikalnego identyfikatora przypisanego do każdego klienta.

Symbole wieloznaczne: Zarówno PubNub, jak i MQTT obsługują symbole wieloznaczne podczas subskrybowania kanałów/tematów. Zobacz dokumenty PubNub dokumenty po więcej szczegółów.

Jak wykorzystać przypadki użycia MQTT

Sercem korzystania z MQTT jako drogi komunikacji jest temat. Jest to niezwykle prosty pomysł, który nie jest unikalny dla MQTT; jednak protokół MQTT dość dobrze wykorzystuje jego moc. Temat pośrednio realizuje kilka zadań, z których najważniejszym jest zapewnienie, że wiadomość jest dostarczana do właściwych słuchaczy. MQTT traktuje temat jako ścieżkę do pliku. Myśląc o temacie jako prostym filtrze komunikacyjnym, aplikacja ścieżki może stać się bardzo potężna.

Możesz być zainteresowany konkretnym wyższym poziomem ścieżki lub elementem liścia. Nie mówiąc tego wprost, MQTT filtruje wiadomości na podstawie miejsca subskrypcji w ścieżce drzewa. To prosty pomysł, który może być bardzo efektywnie wykorzystany.

Specyfikacje techniczne MQTT w zależności od przypadku użycia

Przyjrzyjmy się nieco bliżej technicznym aspektom MQTT. Po pierwsze, protokół działa na szczycie stosu sieciowego TCP/IP. Kiedy klienci łączą się i publikują/subskrybują, MQTT ma różne typy wiadomości, które pomagają w uzgadnianiu tego procesu. Nagłówek MQTT składa się z dwóch bajtów, z których pierwszy jest stały.

W pierwszym bajcie określa się typ wysyłanej wiadomości, a także poziom QoS, flagi retain i DUP (duplikacja). Drugi bajt to pozostałe pole długości. Jeśli jesteś zainteresowany, możesz uzyskać więcej informacji ze specyfikacji MQTT.

Jak korzystać z PubNub i MQTT

Ponieważ PubNub obsługuje teraz MQTT w naszej globalnej sieci strumieni danych w czasie rzeczywistym , chcieliśmy przedstawić przegląd protokołu i dlaczego można go używać lub nie z naszej perspektywy.

Być może już wdrożyłeś urządzenia oparte na MQTT. Możesz też rozważać nowe wdrożenie IoT. Tak czy inaczej, pojawia się pytanie, “Kiedy powinienem używać MQTT, a kiedy PubNub? ” A kiedy ma sens używanie obu? Jeśli rozważasz solidne, dwukierunkowe opcje komunikacji dla swoich urządzeń opartych na MQTT, PubNub zapewnia bezpieczeństwo, skalowalność i niezawodność klasy korporacyjnej, a także wiele funkcji o wartości dodanej, takich jak funkcje jako usługa, wykrywanie obecności oraz przechowywanie i odtwarzanie wiadomości. A cała ta moc jest dostępna za pomocą prostego polecenia publikuj-subskrybuj.

Podobnie jak przysłowiowe masło orzechowe i czekolada, PubNub i MQTT razem mogą elegancko rozwiązać wiele przypadków użycia urządzeń wbudowanych. Możesz wykorzystać PubNub z MQTT, aby zaspokoić przypadki użycia, takie jak niskie opóźnienia, wydajne wykrywanie anomalii. Załóżmy na przykład, że masz czujniki oparte na MQTT na przemysłowych turbinach wytwarzających energię. Możesz wykorzystać PubNub – w tym funkcje "Functions-as-a-Service" – do reagowania i przesyłania danych z czujników w czasie rzeczywistym, dzięki czemu zespół operacyjny może zidentyfikować problemy z turbiną, zanim dane dotrą do scentralizowanego centrum danych. Możesz także wykorzystać PubNub z alarmami domowymi opartymi na MQTT, aby przeglądać sygnały z alarmów i identyfikować, czy istnieje zły alarm, który wysyła fałszywe alarmy. W różnych przypadkach użycia można wykorzystać integrację PubNub z wieloma usługami uczenia maszynowego w celu wykrywania anomalii.

Jeśli MQTT nie jest częścią Twojej obecnej infrastruktury, możesz rozważyć wykorzystanie PubNub Data Stream Network bezpośrednio wraz z licznymi zestawami IoT SDK PubNub dla całej Twojej łączności z Internetem rzeczy. Sieć PubNub Network z MQTT może być świetnym wyborem dla urządzeń o niskim poborze mocy.

Aby korzystać z sieci PubNub Network z urządzeniami obsługującymi MQTT, należy zasubskrybować swoje urządzenia w PubNub na stronie mqtt.pubnub.com. Nasz przewodnik PubNub Improves MQTT Support & IoT Capabilities przeprowadzi Cię przez etapy subskrypcji bardziej szczegółowo.

Dodatkowe zasoby dotyczące MQTT

Jak PubNub może ci pomóc?

Ten artykuł został pierwotnie opublikowany na PubNub.com

Nasza platforma pomaga programistom tworzyć, dostarczać i zarządzać interaktywnością w czasie rzeczywistym dla aplikacji internetowych, aplikacji mobilnych i urządzeń IoT.

Fundamentem naszej platformy jest największa w branży i najbardziej skalowalna sieć przesyłania wiadomości w czasie rzeczywistym. Dzięki ponad 15 punktom obecności na całym świecie obsługującym 800 milionów aktywnych użytkowników miesięcznie i niezawodności na poziomie 99,999%, nigdy nie będziesz musiał martwić się o przestoje, limity współbieżności lub jakiekolwiek opóźnienia spowodowane skokami ruchu.

Poznaj PubNub

Sprawdź Live Tour, aby zrozumieć podstawowe koncepcje każdej aplikacji opartej na PubNub w mniej niż 5 minut.

Rozpocznij konfigurację

Załóż konto PubNub, aby uzyskać natychmiastowy i bezpłatny dostęp do kluczy PubNub.

Rozpocznij

Dokumenty PubNub pozwolą Ci rozpocząć pracę, niezależnie od przypadku użycia lub zestawu SDK.

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .