Gibt es MQTT-Broker, die QoS 1/2 -Nachrichten auf der Festplatte speichern?

11

Ab sofort scheint der EMQ (Erlang MQTT Broker) keine QoS 1/2 -Nachrichten auf der Festplatte zu speichern: Wie behält EMQ QoS 1/2 -Nachrichten bei?

Im Falle eines unerwarteten Neustarts des Servers können Speicherbeschränkungen oder andere Ereignismeldungen verloren gehen, obwohl Nachrichten der Stufe QoS 1/2 mindestens oder genau einmal zugestellt werden müssen .

Gibt es MQTT-Broker, die QoS 1/2 -Nachrichten auf der Festplatte speichern und so die Zustellung sicherstellen?

Ghanima
quelle
2
Werfen
Hardillb

Antworten:

8

Ich denke, Mosquitto speichert die In-Memory-Nachrichten auf der Festplatte.

Persistenz [wahr | false] Wenn true, werden Verbindungs-, Abonnement- und Nachrichtendaten an der von persistence_location vorgegebenen Position auf die Festplatte in mosquitto.db geschrieben. Wenn mosquitto neu gestartet wird, werden die in mosquitto.db gespeicherten Informationen neu geladen. Die Daten werden beim Schließen der Mücke auf die Festplatte geschrieben und auch in regelmäßigen Abständen, wie durch autosave_interval definiert. Das Schreiben der Persistenzdatenbank kann auch erzwungen werden, indem eine Mücke an das SIGUSR1-Signal gesendet wird. Bei false werden die Daten nur im Speicher gespeichert. Der Standardwert ist false.

Ross
quelle
7

VerneMQ ist ein Beispiel für einen MQTT-Broker, der die Zustellung akzeptierter QoS1 / 2-Nachrichten beim Schreiben auf die Festplatte (mit LevelDB) garantiert. VerneMQ ähnelt in gewisser Weise EMQ, da es auch Open Source ist und Clustering unterstützt (obwohl eine andere Technologie verwendet wird). Vollständige Offenlegung, ich bin ein VerneMQ-Ingenieur.

Lars Hesel Christensen
quelle
Nebenfrage: Habt ihr einen öffentlichen VerneMQ-Broker zum Testen und Bewerten angeboten?
Ross
1
Hallo @ Ross, wir haben eine öffentliche Instanz, die auf public.vernemq.com:1883 ausgeführt wird, aber Sie können dort keine Lasttests durchführen, da diese auf einer kleinen virtuellen Maschine ausgeführt wird. Erwarten Sie also nicht, dass sie sehr leistungsfähig ist . Es gibt auch Einschränkungen hinsichtlich der Anzahl gleichzeitiger Verbindungen, die von einer einzelnen IP stammen. Wenn Sie möchten, können Sie uns kontaktieren und wir würden uns freuen, wenn wir Ihren Anwendungsfall unterstützen können. Sie können uns unter info at vernemq dot com schreiben oder das Kontaktformular hier ausfüllen
Lars Hesel Christensen
1
Vielen Dank, ich muss keine Lasttests durchführen, nur um zu überprüfen, ob ich eine Verbindung zu verschiedenen Brokern herstellen kann und ob Kompatibilitätsprobleme vorliegen.
Ross
1
Das erinnert mich daran, dass die öffentliche Version relativ alt ist - ich werde sehen, ob ich sie heute nicht auf die neueste Version aktualisieren kann.
Lars Hesel Christensen
5

HiveMQ scheint verschiedene Optionen zum Beibehalten von Sitzungsdaten bereitzustellen, einschließlich QoS 1/2 -Nachrichten.

Die Persistenzoptionen sind hier aufgelistet :

  • Dateipersistenz
  • In-Memory-Persistenz

Standardmäßig wird HiveMQ die Verwendung Datei Persistenz , die alle Daten auf der Festplatte speichert , so kann es jederzeit abgerufen werden.

Um die Konsistenz der Daten zwischen den Neustarts des Brokers zu gewährleisten, verwendet HiveMQ standardmäßig die Festplattenpersistenz. Das bedeutet, dass selbst wenn der Broker stoppt oder abstürzt, alle Daten erhalten bleiben und der Broker nach einem Neustart seinen Betrieb fortsetzen kann, als wäre nichts passiert.

Aurora0001
quelle