Wie in einer anderen Frage vorgeschlagen , haben wir den Zielpfad als db und autosave_interval als 3000 hinzugefügt, aber nach einigen Tagen wird der Speicher automatisch reduziert.
Bitte lassen Sie mich wissen, ob es eine andere Lösung gibt, die nur in einer Datenbankdatei gespeichert werden kann.
Antworten:
Der Moskito-Broker unterstützt das Auslagern des Persistenzspeichers in eine externe Datenbank nicht, und die Datenbankdatei ist nur eine Sicherung der In-Memory-Datenbank, falls der Broker abstürzt oder heruntergefahren wird.
Wenn Sie eine große Anzahl von Nachrichten für Offline-Clients oder eine große Anzahl von großen gespeicherten Nachrichten in der Warteschlange haben, wird Speicher belegt.
Das Beste, was Sie tun können, ist die
persistent_client_expiration
Option zum Entfernen von Nachrichten in der Warteschlange für Clients festzulegen, die sich lange nicht angemeldet haben. Details zu dieser Option kann im mosquitto.conf Mann finden Seite .Andernfalls müssen Sie einen anderen Broker verwenden, der das Speichern der Persistenzdatenbank außerhalb des Prozesses unterstützt. So etwas wie Mosca kann so konfiguriert werden, dass Mongo oder Redis als Hintergrundgeschäft verwendet werden.
quelle