MQTT: Was ist "QoS" (Quality of Service) und wie funktioniert es?

3 Minuten des Lesens

MQTT-Logo

Die sogenannte Quality of Service (kurz QoS) gehört zu den wichtigsten Merkmalen der proProtokoll MQTT. die Dienstqualität bezeichnet den Grad der Genauigkeit bei der Zustellung von MQTT-Nachrichten zwischen Absender und Makler und Makler und Abonnentenoder die Genauigkeit, die die Garantie für eine effektive und erfolgreiche Zustellung solcher Nachrichten definiert.

da drei Ebenen des Dienstes QoS:

  • Höchstens einmal (0-Ebene)
  • Mindestens einmal (1-Ebene)
  • Genau einmal (2-Ebene)

QoS MQTT ist grundsätzlich betroffen die zwei Phasen der Lieferung einer von einem sendenden Client gesendeten und von einem Abonnenten-Client empfangenen Nachricht:

  • Senden vom Absender an den Makler;
  • Senden vom Broker an den Endempfänger.

In der ersten Phase der Absender entscheidet über die mit der Nachricht verknüpfte QoS-Stufe und schickt es an den Makler; Im zweiten Fall übergibt der Broker diese Nachricht an alle Clients, die über ein Abonnement für diese Nachricht mit derselben QoS-Stufe verfügen, es sei denn, die Client-Abonnenten verfügen nicht über diese prosah die Registrierung, die eine niedrigere QoS-Stufe anzeigte. In diesem Fall leitet der Broker die Nachricht mit einer niedrigeren QoS-Stufe weiter.

QoS ist sehr wichtig, da der Absender auf der Grundlage der Netzwerkqualität und -logik die Serviceebene auswählen kann applicativa. Unten sehen wir die verschiedenen Unterschiede.

QoS 0

Das Mindestniveau für QoS ist Null. Es ist eine konzipierte Ebene für maximale leistung bei minimalem aufwand: In diesem Szenario gibt es keine Liefergarantie. Der Absender sendet an den Broker und vergiss eswartet auch auf keine Antwort prosieht ein mögliches erneutes senden. Um es einfach auszudrücken, wie es geht, geht es.

QoS 1

In diesem Szenario der Absender (derjenige, der die ursprüngliche Nachricht an den Broker sendet, oder der Broker selbst, der eine Nachricht an den Endempfänger sendet) behält die Nachricht im Speicher bis es vom Empfänger erhält Das OK des Empfangs ist aufgetreten. Wenn er es nicht innerhalb einer angemessenen Zeit erhält, sendet er es erneut, ein zweites Mal, und wartet erneut auf eine Antwort und so weiter. Die Verwendung von QoS 1 kann daher auftreten mehrere Zustellungen derselben Nachricht. Tatsächlich erhält der Broker eine Nachricht, die mit QoS 1 markiert ist provvede sofort um es an die Abonnenten dieser Nachricht weiterzuleiten und dann Antworten "erledigtAn den Absender; Wenn die Zeit zwischen dem Senden und Empfangen des Bestätigungspakets zu lang ist (z. B. in überlasteten Netzwerken), sendet der Absender die Nachricht erneut, löst die gesamte Kette erneut aus und verursacht ein doppeltes Senden.

QoS 2

Dies ist der Modus langsamer aber auch zuverlässiger: im Wesentlichen die proDies beinhaltet einen doppelten Rückprall zwischen Absender und Empfänger um dem Absender die tatsächliche Übernahme der Nachricht zu bestätigen und daher die Stornierung einer eventuellen erneuten Versendung. Dies garantiert, dass die Nachricht genau einmal eintrifft, ist aber offensichtlich (minimal) teurer für die Systeme, für das Netzwerk und für das Timing.

Welches ist das beste?
Es gibt offensichtlich keine einzige Antwort. Es kommt, wie so oft, auf das Szenario an appvon der protocollo MQTT, das für leichte und schnelle Kommunikation ausgelegt ist, dessen Konfiguration in Bezug auf die QoS jedoch sorgfältig auf den Anwendungsbereich abgestimmt werden muss.

Wir empfehlen QoS 0, wenn:

  • Die Netzwerkverbindung zwischen den Clients und dem Broker ist zuverlässig, schnell und stabil. Trivialerweise bei Verwendung einer Kabelverbindung;
  • es ist nicht ein proProblem, wenn eine Nachricht verloren geht;
  • Es ist nicht erforderlich, Message Queuing und persistente Sitzungen zu verwenden.

Wir empfehlen QoS 1, wenn:

  • Die Netzwerkverbindung kann manchmal instabil sein, wie im Fall von Wi-Fi Haushalt;
  • es ist nicht ein proProblem, um eventuell doppelte Nachrichten zu erhalten;
  • Es ist nicht möglich, die durch QoS 2 verursachte Überlastung zu unterstützen.

Abschließend empfehlen wir den QoS 2 bei è kritisch die Tatsache, immer zu garantieren eine und nur eine Lieferung für jede einzelne Nachricht.

in persönliche Hausautomation - Vielleicht haben Sie es schon selbst herausgefunden - Die empfohlene QoS ist 1, wie gewöhnlich der Empfang (wie selten auch immer) doppelter Nachrichten in der Regel nicht verursacht proProbleme jeglicher Art. Stellen wir uns ein Thema wie das folgende vor:

CMND /Tasmota/ POWER 1

der normalerweise einen mit Firmware ausgestatteten Aktuator steuert Tasmota Relais ausschalten. Es wäre vielleicht ein proHat der Antrieb zweimal hintereinander dieselbe Meldung erhalten? Mit Sicherheit nicht. Stattdessen wäre es die Tatsache keine Erhalten Sie es, was passieren kann, wenn Sie QoS 0 verwenden.

Es gibt offensichtlich Ausnahmen: zum Beispiel im Fall von a MQTT-Alarmsystem es ist ratsam, QoS 2 zu verwenden, da es denkbar ist, dass es mehr ap istproBefehle empfangen einzigartig und sicherimmer.

So konfigurieren Sie MQTT auf den Geräten der proerste Hausautomation