Zephyrnet-Logo

MQTT 5: 7 neue Funktionen und eine Migrations-Checkliste

Datum:

MQTT 5: 7 neue Funktionen und eine Migrations-Checkliste
Abbildung: © IoT für alle

MQTT, was für Message Queuing Telemetry Transport steht, ist ein leichtes Messaging-Protokoll, das für eingeschränkte Geräte und Netzwerke mit geringer Bandbreite und hoher Latenz entwickelt wurde. Dies ist besonders nützlich für Remoteverbindungen, bei denen ein kleiner Code-Footprint erforderlich ist oder die Netzwerkbandbreite begrenzt ist.

MQTT 5 ist die neueste Version des Protokolls und bietet viele Verbesserungen gegenüber seinen Vorgängern. Zu den neuen Funktionen gehören Ursachencodes, Sitzungsablaufintervalle, Themenaliase, Benutzereigenschaften, Abonnementoptionen, Anforderungs-/Antwortfunktionen und gemeinsame Abonnements.

Wir werden diese neuen Funktionen untersuchen, erklären, wie beliebte Broker und Client-SDKs MQTT 5 unterstützen, und einige wichtige Überlegungen bei der Migration von MQTT 3.1.1 auf MQTT 5 erläutern.

Kurze Geschichte und Entwicklung von MQTT 5

MQTT wurde erstmals Ende der 1990er Jahre von Dr. Andy Stanford-Clark von IBM und Arlen Nipper von Arcom (heute Eurotech) entwickelt, um Ölpipelines über Satellitennetzwerke zu überwachen. Die erste Version, MQTT v3.1, war leichtgewichtig und einfach zu implementieren und eignet sich daher für viele IoT-Geräte.

MQTT 3.1.1, ein OASIS-Standard, wurde 2014 veröffentlicht und beinhaltete geringfügige Änderungen am Protokoll, um dessen Klarheit und Interoperabilität zu verbessern. Seine Einfachheit und Effizienz bei der Übermittlung von Nachrichten über Netzwerke mit begrenzten Ressourcen führten zu seiner weiten Verbreitung in IoT-Anwendungen.

Mit der Weiterentwicklung der IoT-Branche entwickelten sich jedoch auch die Anforderungen ihrer Anwendungen. Dies führte zur Entwicklung von MQTT 5, das 2019 veröffentlicht wurde und neue Funktionen einführte, um diesen sich ändernden Anforderungen gerecht zu werden. Mit seinen erweiterten Funktionen ist MQTT 5 besser für die komplexen Anforderungen moderner IoT-Anwendungen gerüstet.

7 neue Funktionen in MQTT v5

Ursachencodes: Unterbrechungen oder Fehler verstehen

Im Gegensatz zu seinen Vorgängern kann MQTT 5 eine Ursachencode für jedes Bestätigungspaket, was uns ein besseres Verständnis dafür gibt, warum eine Unterbrechung oder ein Fehler aufgetreten ist. Diese Verbesserung hilft bei der Fehlerbehebung und ermöglicht eine präzisere Fehlerbehandlung.

Wenn beispielsweise ein Client keine Verbindung zum Server herstellen kann, gibt der Server einen Ursachencode zurück, der erklärt, warum die Verbindung nicht erfolgreich war. Dies kann auf eine Reihe von Problemen zurückzuführen sein, von falschen Anmeldeinformationen bis hin zur Nichtverfügbarkeit eines Servers.

Sitzungsablaufintervalle: Sitzungslebensdauer verwalten

Mit dieser Funktion kann der Client angeben, wie Lange sollte der Server seine Sitzung aufrechterhalten nachdem der Client die Verbindung getrennt hat. In früheren MQTT-Versionen wurde eine Sitzung entweder sofort nach dem Trennen der Verbindung beendet oder auf unbestimmte Zeit fortgesetzt.

Mit MQTT 5 können Sie einen bestimmten Zeitraum definieren, für den die Sitzung nach der Trennung am Leben bleiben soll. Dies bietet eine größere Flexibilität bei der Verwaltung der Sitzungsdauer und schont Ressourcen auf dem Server.

MQTT 5 stellt vor Themen-Aliase um den Overhead in Nachrichtenheadern zu reduzieren. In früheren Versionen musste der Themenname in jeder Nachricht enthalten sein, was zu größeren Paketgrößen führte.

Mit Themenaliasen kann einem Thema ein kurzer numerischer Alias ​​zugewiesen werden. Dieser Alias ​​kann in nachfolgenden Nachrichten anstelle des vollständigen Themennamens verwendet werden, wodurch die Größe des MQTT-Headers erheblich reduziert und Netzwerkbandbreite eingespart wird.

Mit dieser Funktion können Benutzer benutzerdefinierte Metadaten in die Header von MQTT-Paketen einfügen. Dies kann besonders nützlich für Anwendungen sein, die zusätzliche Informationen mit ihren MQTT-Nachrichten senden müssen, wie z. B. den Zeitstempel der Nachricht, den Gerätestandort oder andere anwendungsspezifische Daten. Benutzereigenschaften bieten mehr Flexibilität und Kontrolle über MQTT-Nachrichten.

Abonnementoptionen: Detaillierte Abonnementkontrollen

Mit MQTT 5 können Clients angeben wie sie Nachrichten für jedes abonnierte Thema erhalten möchten. Beispielsweise können Clients jetzt angeben, ob sie beibehaltene Nachrichten für ein bestimmtes Abonnement erhalten möchten oder ob sie Nachrichten auch dann erhalten möchten, wenn sie dieselbe QoS-Stufe (Quality of Service) wie das Abonnement haben.

Anfrage/Antwort: Ermöglichen, dass Kunden auf ein bestimmtes Thema antworten

Das Anfrage-/Antwortfunktion ermöglicht es einem Client, ein Thema anzugeben, das der Server zum Senden einer direkten Antwort verwenden kann.

Wenn ein Client in früheren Versionen von MQTT eine Antwort auf eine Nachricht senden wollte, musste er die Antwort in einem Thema veröffentlichen und der ursprüngliche Absender musste dieses Thema abonniert haben, um die Antwort zu erhalten. Mit der Request/Response-Funktion von MQTT 5 wird die Kommunikation zwischen Clients und Servern wesentlich effizienter und unkomplizierter.

Gemeinsames Abonnement: Lastausgleichsfunktion für Abonnenten

Mit dieser Funktion können mehrere Kunden ein Abonnement teilen. Wenn eine Nachricht in einem freigegebenen Thema veröffentlicht wird, verteilt der Server die Nachricht an einen der Clients im freigegebenen Abonnement und sorgt so für einen effektiven Lastenausgleich der Nachrichten.

Diese Funktion ist besonders nützlich in Szenarien, in denen mehrere Instanzen eines Dienstes ausgeführt werden und Sie die Arbeitslast gleichmäßig auf diese verteilen möchten.

Aktuelle Unterstützung von Broker- und Client-SDKs in MQTT 5.0

Das MQTT 5.0-Protokoll wurde von der IoT-Community gut angenommen, und zwar zahlreich MQTT-Broker und Client-Softwareentwicklungskits (SDKs) bieten zusätzliche Unterstützung dafür. Große MQTT-Broker haben bereits MQTT 5.0-Funktionen in ihren Plattformen implementiert, sodass Benutzer die Vorteile des neuen Protokolls nutzen können.

Auf der Client-SDK-Seite haben Bibliotheken wie Paho, die über eine breite Benutzerbasis verfügen, Unterstützung für MQTT 5.0 hinzugefügt. Dies bedeutet, dass Entwickler jetzt MQTT 5.0-Funktionen in ihren IoT-Anwendungen nutzen können. Weitere Beispiele für Client-SDKs, die MQTT 5.0 unterstützen, sind MQTT.js und MQTTnet.

Checkliste für die Migration von MQTT 3.1.1 auf MQTT 5

Wenn Sie derzeit MQTT 3.1.1 verwenden, ist es wahrscheinlich an der Zeit, auf MQTT 5 zu aktualisieren. Hier sind einige der wichtigsten Dinge, die Sie bei der Umstellung berücksichtigen sollten.

Aktualisieren Sie MQTT-Broker

Nachdem Sie Ihre aktuelle Infrastruktur bewertet und sich für die Migration entschieden haben, besteht der nächste Schritt darin, Ihre MQTT-Broker zu aktualisieren. Dazu müssen Sie die neueste Version Ihres MQTT-Brokers installieren, die MQTT 5.0 unterstützt.

Das Upgrade Ihres Brokers sollte mit Vorsicht erfolgen, da es sich auf alle Ihre Aspekte auswirkt MQTT-Clients. Es empfiehlt sich, den neuen Broker zunächst in einer Nicht-Produktionsumgebung zu testen, bevor er in der Produktion eingeführt wird. Stellen Sie außerdem sicher, dass die Konfiguration Ihres Brokers bei Bedarf aktualisiert wird, um die neuen Funktionen zu unterstützen, die in MQTT 5.0 eingeführt wurden.

Client-Bibliotheken aktualisieren

Nachdem Sie Ihre MQTT-Broker aktualisiert haben, besteht der nächste Schritt darin, Ihre MQTT-Clientbibliotheken zu aktualisieren. Genau wie das Broker-Update sollten Sie dieses Update zunächst in einer Nicht-Produktionsumgebung durchführen. Stellen Sie außerdem sicher, dass Ihr Anwendungscode aktualisiert ist, um die neuen MQTT 5.0-Funktionen zu verarbeiten. Bedenken Sie, dass dies möglicherweise eine Umgestaltung des Codes erfordert.

Adresssicherheit

Während MQTT 5.0 mehrere Verbesserungen mit sich bringt, führt es auch neue Sicherheitsaspekte ein. Mit der neuen Benutzereigenschaftsfunktion können Kunden jetzt beispielsweise benutzerdefinierte Daten an den Broker senden.

Obwohl dies eine leistungsstarke Funktion ist, kann sie ausgenutzt werden, wenn sie nicht richtig verwendet wird. Daher ist es wichtig, alle neuen Funktionen unter dem Gesichtspunkt der Sicherheit zu bewerten.

Zu den Maßnahmen, die Sie ergreifen können, um die Sicherheit zu verbessern, gehören die Verwendung der neuen erweiterten Authentifizierungsfunktion für mehr Sicherheit, die Beschränkung der Benutzereigenschaften, die Clients senden können, auf das Notwendige und die kontinuierliche Überwachung auf verdächtige Aktivitäten.

Überwachung nach der Migration

Nachdem Sie auf MQTT 5.0 migriert und dessen Funktionen implementiert haben, ist es schließlich wichtig, Ihr System kontinuierlich zu überwachen. Die Überwachung sollte nicht nur auf technische Aspekte wie Nachrichtenübermittlung oder Clientverbindungen beschränkt sein.

Sie sollten auch die Nutzung der neuen MQTT 5.0-Funktionen in Ihren Anwendungen überwachen. Dadurch erhalten Sie Einblicke, wie diese Funktionen Ihre Anwendungen verbessern und wo weitere Verbesserungen vorgenommen werden können.

spot_img

Neueste Intelligenz

spot_img