1

HiveMQ は永続化機能に対してどのようなオプションを提供しますか? デフォルトはファイルベースですか?必要に応じてデータベースに変更できますか?

ネットで何かを見つけようとしましたが、思いついたのは、 MySQL dbを使用してメッセージが到着したときにメッセージを保存するこのMQTT-SQL-Database Pluginだけでした。ユーザーのサブスクリプション、統計データ、その他のデータなどすべてをデータベースに保持したいと考えています。現在、ブローカーを再起動すると、すべてのデータが失われます。

4

1 に答える 1

2

免責事項: 私は HiveMQ の背後にある会社で働いています

HiveMQ 1.x および 2.x は、デフォルトでファイル ベースの永続性を使用します (ファイルはデータフォルダーにあります)。これは、ほとんどのユースケースで非常にうまく機能します。infinispan.xml ファイルを使用して永続性をデータベースなどに変更できますが、これはお勧めしません。データは実際には HiveMQ の内部用であり、外部から変更してはなりません。

また、統計データは一時的なもので永続化されないため、再起動後は存続しないことに注意してください。クライアントが永続的なセッションで接続している場合、ユーザー サブスクリプションは再起動後も存続します。

ユース ケース (統計、サブスクリプションなどのすべてのデータを保持する) に対処する最善の方法は、強力なHiveMQ プラグイン システムを使用することだと思います。サービスを使用して、サブスクリプション、クライアント、保持されているメッセージなどに関するデータをいつでも取得できます。もう 1 つのアプローチは、HiveMQ によって提供されるコールバックを使用することです。ブローカーのほぼすべての側面を傍受できます (統計が更新されたとき、誰かがサブスクライブしたとき、クライアントが切断されたときなど)。

コードを直接掘り下げる方が快適だと思われる場合は、Githubでかなりの数のコールバックとサービスを使用するこの例の hello-world プロジェクトを確認してください。始めるのは本当に簡単です。データベース接続プールを統合する方法を知りたい場合は、このサンプル プロジェクトをチェックしてください。

HiveMQ 関連の質問をする最善の方法は、HiveMQ サポート フォーラムを使用することです。より詳細な質問がある場合は、こちらを確認してください。

于 2015-01-12T15:29:57.700 に答える