蚊をメモリからではなくデータベースのトピックを更新する方法は?


7

別の質問で提案されているように、宛先パスをdbとして追加し、autosave_intervalを3000として追加しましたが、数日後にメモリが自動的に減少しています。

dbファイルのみに保存する他の解決策があるかどうか教えてください。


ハードドライブにメッセージを保持できる場合でも、いつまでもそうすることで、いつかディスクがいっぱいになります。これらのメッセージを期限切れにすることを検討しましたか?(蚊がそのようなことを提供するかどうかはわかりません)。
bgusach

回答:


4

mosquittoブローカーは、永続ストアの外部データベースへのオフロードをサポートしていません。dbファイルは、ブローカーがクラッシュまたはシャットダウンした場合のメモリー内データベースのバックアップにすぎません。

オフラインクライアント用にキューに入れられたメッセージの数が多い場合、または保持されたメッセージが大量にある場合、メモリが消費されます。

最善のpersistent_client_expiration方法は、長時間ログオンしていないクライアントのキューに入れられたメッセージを削除するオプションを設定することです。このオプションの詳細はmosquitto.conf man ページにあります

それ以外の場合は、永続データベースのプロセス外格納をサポートする別のブローカーを使用することを検討する必要があります。moscaのようなものは、mongoまたはredisをバッキングストアとして使用するように構成できます。


現在、persitent_client_expirationは1時間ですが、メモリが消費されています。
bhuva nesh

次に、メモリの増加は、オフラインクライアントのキューに入れられたメッセージにまで及んでいない可能性があります。
hardillb 2018年

保存されたメッセージを手動で消去する方法はありますか?
bhuva nesh

ブローカーを停止せずに、dbファイルを削除し、トピックへのnullペイロードを再起動または公開する(保持されたフラグを設定)
hardillb
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.