MQTT, som står för Message Queuing Telemetry Transport, är ett lättviktigt meddelandeprotokoll designat för begränsade enheter och nätverk med låg bandbredd och hög latens. Det är särskilt användbart för fjärranslutningar där ett litet kodavtryck krävs eller nätverksbandbredden är begränsad.
MQTT 5 är den senaste versionen av protokollet och erbjuder många förbättringar jämfört med sina föregångare. Nya funktioner inkluderar orsakskoder, sessionsperioder, ämnesalias, användaregenskaper, prenumerationsalternativ, begäran/svarsfunktioner och delade prenumerationer.
Vi kommer att utforska dessa nya funktioner, förklara hur populära mäklare och kund-SDK:er stöder MQTT 5, och några viktiga överväganden vid migrering från MQTT 3.1.1 till MQTT 5.
Kort historia och utveckling av MQTT 5
MQTT utvecklades först i slutet av 1990-talet av Dr. Andy Stanford-Clark från IBM och Arlen Nipper från Arcom (nu Eurotech), för att övervaka oljeledningar över satellitnätverk. Den ursprungliga versionen, MQTT v3.1, designades för att vara lätt och lätt att implementera, vilket gör den lämplig för många IoT-enheter.
MQTT 3.1.1, en OASIS-standard, släpptes 2014, som inkluderade mindre ändringar i protokollet för att förbättra dess tydlighet och interoperabilitet. Dess enkelhet och effektivitet när det gäller att leverera meddelanden över nätverk med begränsade resurser ledde till dess utbredda användning i IoT-applikationer.
Men i takt med att IoT-branschen utvecklades, så gjorde också behoven för dess applikationer. Detta ledde till utvecklingen av MQTT 5, släppt 2019, som introducerade nya funktioner för att möta dessa föränderliga behov. Med sina förbättrade funktioner är MQTT 5 bättre rustad att hantera de komplexa kraven i moderna IoT-applikationer.
7 nya funktioner i MQTT v5
Orsakskoder: Förstå frånkopplingar eller misslyckanden
Till skillnad från sina föregångare kan MQTT 5 ge en orsakskod för varje bekräftelsepaket, vilket ger oss en bättre förståelse för varför en frånkoppling eller ett fel inträffade. Denna förbättring hjälper till vid felsökning och möjliggör mer exakt felhantering.
Om en klient till exempel misslyckas med att ansluta till servern kommer servern att returnera en orsakskod som förklarar varför anslutningen misslyckades. Detta kan bero på en rad problem, från felaktiga inloggningsuppgifter till att en server inte är tillgänglig.
Sessionens utgångsintervall: Hantera sessionslivslängder
Denna funktion låter klienten specificera hur länge bör servern behålla sin session efter att klienten kopplat från. I tidigare MQTT-versioner slutade en session antingen omedelbart efter frånkoppling eller fortsatte på obestämd tid.
Med MQTT 5 kan du definiera en specifik period under vilken sessionen ska hållas vid liv efter frånkoppling. Detta ger större flexibilitet vid hantering av sessionslivslängder och sparar resurser på servern.
MQTT 5 introducerar ämnesalias för att minska omkostnaderna i meddelandehuvuden. I tidigare versioner behövde ämnesnamnet inkluderas i varje meddelande, vilket ledde till större paketstorlekar.
Med ämnesalias kan ett kort numeriskt alias tilldelas ett ämne. Detta alias kan användas i stället för det fullständiga ämnesnamnet i efterföljande meddelanden, vilket avsevärt minskar storleken på MQTT-huvudet och sparar nätverksbandbredd.
Denna funktion tillåter användare att inkludera anpassad metadata i rubrikerna på MQTT-paket. Detta kan vara särskilt användbart för applikationer som behöver skicka ytterligare information med sina MQTT-meddelanden, såsom meddelandets tidsstämpel, enhetsplats eller annan applikationsspecifik data. Användaregenskaper ger större flexibilitet och kontroll över MQTT-meddelanden.
Prenumerationsalternativ: Granulära prenumerationskontroller
MQTT 5 tillåter klienter att specificera hur de vill ta emot meddelanden för varje prenumerant ämne. Till exempel kan klienter nu ange om de vill ta emot behållna meddelanden för en viss prenumeration, eller om de vill ta emot meddelanden även om de har samma QoS (Quality of Service) nivå som prenumerationen.
Begäran/Svar: Tillåter kunder att svara på ett specificerat ämne
Smakämnen begäran/svar funktion tillåter en klient att ange ett ämne som servern kan använda för att skicka ett direkt svar.
I tidigare versioner av MQTT, om en klient ville skicka ett svar på ett meddelande, var den tvungen att publicera svaret på ett ämne, och den ursprungliga avsändaren var tvungen att prenumerera på det ämnet för att få svaret. Med MQTT 5:s begäran/svarsfunktion blir kommunikationen mellan klienter och servrar mycket mer effektiv och okomplicerad.
Delad prenumeration: Lastbalanserande funktion för prenumeranter
Den här funktionen tillåter flera kunder att dela ett abonnemang. När ett meddelande publiceras till ett delat ämne distribuerar servern meddelandet till en av klienterna i den delade prenumerationen, vilket effektivt balanserar meddelandena.
Den här funktionen är särskilt användbar i scenarier där du har flera instanser av en tjänst igång och du vill fördela arbetsbelastningen jämnt mellan dem.
Aktuell support för mäklare och klient-SDK i MQTT 5.0
MQTT 5.0-protokollet har tagits emot väl av IoT-gemenskapen och många MQTT-mäklare och klientprogramvaruutvecklingskit (SDK) har lagt till stöd för det. Stora MQTT-mäklare har redan implementerat MQTT 5.0-funktioner i sina plattformar, vilket gör att användare kan dra nytta av det nya protokollets fördelar.
På klient-SDK-fronten har bibliotek som Paho, som har en bred användarbas, lagt till stöd för MQTT 5.0. Detta innebär att utvecklare nu kan använda MQTT 5.0-funktioner i sina IoT-applikationer. Andra exempel på klient-SDK:er som stöder MQTT 5.0 är MQTT.js och MQTTnet.
Checklista för migrering från MQTT 3.1.1 till MQTT 5
Om du för närvarande använder MQTT 3.1.1 är det förmodligen dags att uppgradera till MQTT 5. Här är några av de viktigaste sakerna du bör tänka på när du flyttar.
Uppdatera MQTT Brokers
När du har utvärderat din nuvarande infrastruktur och bestämt dig för att gå vidare med migreringen är nästa steg att uppdatera dina MQTT-mäklare. Detta innebär att du installerar den senaste versionen av din MQTT-mäklare som stöder MQTT 5.0.
Att uppgradera din mäklare bör göras med försiktighet, eftersom det påverkar alla dina MQTT-klienter. Det är tillrådligt att först testa den nya mäklaren i en icke-produktionsmiljö innan den rullas ut i produktion. Se också till att din mäklares konfiguration uppdateras vid behov för att stödja de nya funktionerna som introduceras i MQTT 5.0.
Uppdatera klientbibliotek
Efter att du har uppdaterat dina MQTT-mäklare är nästa steg att uppdatera dina MQTT-klientbibliotek. Precis som mäklaruppdateringen bör du först utföra denna uppdatering i en icke-produktionsmiljö. Se också till att din applikationskod är uppdaterad för att hantera de nya MQTT 5.0-funktionerna. Tänk på att detta kan innebära en del kodrefaktorering.
Adresssäkerhet
Även om MQTT 5.0 ger flera förbättringar, introducerar den också nya säkerhetsöverväganden. Till exempel, med den nya användaregenskapsfunktionen kan kunder nu skicka anpassade data till mäklaren.
Även om detta är en kraftfull funktion, kan den utnyttjas om den inte används på rätt sätt. Därför är det viktigt att utvärdera alla nya funktioner ur ett säkerhetsperspektiv.
Några av stegen du kan vidta för att ta itu med säkerheten inkluderar att använda den nya förbättrade autentiseringsfunktionen för starkare säkerhet, begränsa användaregenskaperna som klienter kan skicka till bara det som är nödvändigt och kontinuerligt övervaka för misstänkta aktiviteter.
Övervaka efter migrering
Slutligen, efter att du har migrerat till MQTT 5.0 och implementerat dess funktioner, är det viktigt att kontinuerligt övervaka ditt system. Övervakning bör inte bara begränsas till tekniska aspekter som meddelandeleverans eller klientanslutningar.
Du bör också övervaka användningen av de nya MQTT 5.0-funktionerna i dina applikationer. Detta ger dig insikter i hur dessa funktioner förbättrar dina applikationer och var ytterligare förbättringar kan göras.
- SEO-drivet innehåll och PR-distribution. Bli förstärkt idag.
- PlatoData.Network Vertical Generative Ai. Styrka dig själv. Tillgång här.
- PlatoAiStream. Web3 Intelligence. Kunskap förstärkt. Tillgång här.
- Platoesg. Kol, CleanTech, Energi, Miljö, Sol, Avfallshantering. Tillgång här.
- PlatoHealth. Biotech och kliniska prövningar Intelligence. Tillgång här.
- Källa: https://www.iotforall.com/mqtt-5-7-new-features-and-a-migration-checklist
- : har
- :är
- :inte
- :var
- 1
- 2014
- 2019
- 7
- a
- Konto
- aktiviteter
- lagt till
- Annat
- ytterligare information
- adress
- Antagande
- tillrådligt
- Efter
- framåt
- AIDS
- levande
- Alla
- tillåta
- tillåter
- redan
- också
- bland
- an
- och
- vilken som helst
- Ansökan
- tillämpningar
- ÄR
- AS
- aspekter
- bedöma
- delad
- Autentisering
- Bandbredd
- bas
- BE
- blir
- varit
- innan
- Där vi får lov att vara utan att konstant prestera,
- Fördelarna
- Bättre
- mellan
- Bringar
- bred
- mäklare
- mäklare
- by
- KAN
- vilken
- Förändringar
- byte
- klarhet
- klient
- klienter
- koda
- koder
- Kommunikation
- samfundet
- komplex
- konfiguration
- Kontakta
- anslutning
- Anslutningar
- Tänk
- överväganden
- fortsatte
- kontinuerligt
- kontroll
- korrekt
- kunde
- referenser
- Aktuella
- För närvarande
- beställnings
- datum
- beslutade
- definiera
- leverera
- leverans
- utformade
- utvecklade
- utvecklare
- Utveckling
- anordning
- enheter
- DID
- rikta
- urkoppling
- distribuera
- gjort
- dr
- grund
- varje
- Tidigare
- lätt
- effektivt
- effektivitet
- effektiv
- antingen
- avslutades
- förbättrad
- förbättra
- säkerställa
- Miljö
- utrustad
- fel
- utvärderade
- Även
- jämnt
- Varje
- Utvecklingen
- utvecklats
- exempel
- exempel
- upphörande
- Förklara
- förklara
- utnyttjas
- utforska
- misslyckas
- Misslyckande
- Leverans
- Funktioner
- Förnamn
- Flexibilitet
- Fotavtryck
- För
- från
- främre
- full
- fungera
- ytterligare
- Ge
- Ge
- Go
- större
- hade
- hantera
- Arbetsmiljö
- Har
- headers
- här.
- historia
- Hur ser din drömresa ut
- HTTPS
- IBM
- if
- blir omedelbart
- Konsekvenser
- genomföra
- genomföras
- med Esport
- förbättra
- förbättring
- förbättringar
- in
- innefattar
- ingår
- industrin
- informationen
- Infrastruktur
- inledande
- insikter
- installera
- exempel
- instanser
- Interoperabilitet
- in
- introducerade
- Introducerar
- engagera
- innebär
- iot
- iot enheter
- problem
- IT
- DESS
- jpg
- bara
- hålls
- Nyckel
- större
- Sent
- senaste
- ledande
- Led
- Nivå
- Hävstång
- bibliotek
- lättvikt
- tycka om
- Begränsad
- läge
- logga in
- gjord
- Huvudsida
- bibehålla
- större
- Framställning
- hantera
- många
- max-bredd
- betyder
- meddelande
- meddelanden
- meddelandehantering
- metadata
- kanske
- migrerat
- migrerande
- migration
- mindre
- Modern Konst
- Övervaka
- övervakning
- mer
- mer effektiv
- flytta
- mycket
- multipel
- namn
- nödvändigt för
- Behöver
- behövs
- behov
- nät
- nätverk
- Nya
- Nya funktioner
- Nästa
- nu
- Oasis
- inträffade
- of
- erbjuda
- Olja
- on
- ONE
- endast
- Tillbehör
- or
- ursprungliga
- Övriga
- ut
- över
- paket
- särskilt
- särskilt
- utföra
- perioden
- perspektiv
- Plats
- Plattformar
- plato
- Platon Data Intelligence
- PlatonData
- Populära
- den mäktigaste
- exakt
- föregående
- förmodligen
- Produktion
- egenskaper
- egenskapen
- protokoll
- protokoll
- ge
- ger
- publicera
- publicerade
- kvalitet
- område
- Anledningen
- motta
- mottagna
- minska
- reducerande
- frigörs
- avlägsen
- svar
- Obligatorisk
- Krav
- Resurser
- respons
- behöll
- avkastning
- Rullande
- rinnande
- Samma
- satellit
- scenarier
- sDK
- sdks
- säkerhet
- sända
- avsändare
- server
- servrar
- service
- session
- flera
- Dela
- delas
- Kort
- skall
- signifikant
- enkelhet
- Storlek
- storlekar
- Small
- So
- Mjukvara
- mjukvaruutveckling
- några
- specifik
- specificerade
- standard
- står
- Steg
- Steg
- okomplicerad
- starkare
- prenumeration
- abonnemang
- senare
- sådana
- lämplig
- stödja
- Stödjande
- Stöder
- misstänksam
- system
- Ta
- Teknisk
- testa
- den där
- Smakämnen
- deras
- Dem
- därför
- Dessa
- de
- saker
- detta
- tid
- tidsstämpel
- till
- ämne
- transport
- förståelse
- Uppdatering
- uppdaterad
- uppdatering
- uppgradera
- på
- us
- Användning
- användning
- Begagnade
- Användare
- användare
- med hjälp av
- utnyttja
- version
- vill
- ville
- var
- VÄL
- när
- om
- som
- varför
- utbredd
- kommer
- med
- dig
- Din
- zephyrnet