QoS 1/2メッセージをディスクに永続化するMQTTブローカーはありますか?


11

現在のところ、EMQ(Erlang MQTTブローカー)はQoS 1/2メッセージをディスクに永続化しないようです:EMQはどのようにQoS 1/2メッセージを永続化しますか?

したがって、予期しないサーバーの再起動が発生した場合、QoS 1/2レベルのメッセージを少なくとも1回だけ配信する必要があるにもかかわらず、メモリ制限やその他のイベントメッセージが失われる可能性があります。

QoS 1/2メッセージをディスクに永続化して配信を保証するMQTTブローカーはありますか?


回答:


8

Mosquittoはメモリ内のメッセージをディスクに保存すると思います。

永続性[true | false] trueの場合、接続、サブスクリプション、メッセージデータは、persistence_locationで指定された場所にあるmosquitto.dbのディスクに書き込まれます。mosquittoを再起動すると、mosquitto.dbに保存されている情報が再ロードされます。データは、mosquittoが閉じるときにディスクに書き込まれ、autosave_intervalで定義された定期的な間隔で書き込まれます。永続データベースの書き込みは、SIGUSR1シグナルにmosquittoを送信することによっても強制される場合があります。falseの場合、データはメモリにのみ保存されます。デフォルトはfalseです。


7

VerneMQは、受け入れられたQoS1 / 2メッセージがディスクに書き込まれるときに(LevelDBを使用して)配信を保証するMQTTブローカーの例です。VerneMQは、ある意味で、EMQと似ていますが、EMQもオープンソースであり、クラスタリングをサポートしています(ただし、別のテクノロジーを使用しています)。完全な開示、私はVerneMQエンジニアです。


副次的な質問:皆さんはテストと評価のために公共のVerneMQブローカーを提供しましたか?
ロス

1
こんにちは@ Ross、public.vernemq.com:1883で実行されているパブリックインスタンスがありますが、小さな仮想マシンで実行されているため、そこで負荷テストを行うことはできません。したがって、非常に高いパフォーマンスを期待しないでください。また、単一のIPから発生する同時接続数にも制限があります。ご連絡いただければ、ユースケースをサポートできるかどうかを確認させていただきます。vernemq dot comのinfoに記入するか、こちらのお問い合わせフォームに記入してください。vernemq.com
Lars

1
おかげで、負荷テストを行う必要はありません。別のブローカーに接続できることを確認し、互換性の問題がないかどうかを確認するだけです。
ロス・

1
それを思い出して、私は、パブリックバージョンは比較的古いです-今日の最新リリースにアップグレードできないかどうかを確認します。
Lars Hesel Christensen 2017

5

HiveMQは、QoS 1/2メッセージなど、セッションデータを永続化するためのさまざまなオプションを提供しているようです。

永続化オプションは次のとおりです

  • ファイルの永続性
  • インメモリの永続性

デフォルトでは、HiveMQはファイルの永続性を使用します。これにより、すべてのデータがディスクに保存されるため、いつでも取得できます。

ブローカーの再起動間のデータの一貫性を保証するために、HiveMQはデフォルトでディスク永続性を使用します。つまり、ブローカーが停止またはクラッシュした場合でも、すべてのデータが保持され、再起動後、ブローカーは何も起こらなかったかのように操作を続行できます。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.