MQTTメッセージを最初のサブスクライバが受信した後に削除して、他のサブスクライバがそれを読み取れないようにする方法はありますか?
この奇妙な質問を明確にするには:
私は4つのJBossインスタンスを扱わなければなりません(私はこのアーキテクチャーの責任を絶対に負いません)。彼らはお互いの鏡です。だから、すべての人が特定のトピックを購読する仕事をしています。このトピックのメッセージは、データベースに保存されます。私が避けなければならないのは、同じメッセージが4回持続されるということです。だから、私の考えはトピックに関する競争条件を作り出すことでした。メッセージを読み取った最初のジョブはそれを削除し、他のジョブはそれを受信しません。 これは可能ですか?MQTTメッセージを最初のサブスクライバが読み取った後に削除します
1
A
答えて
2
ソート答えいいえ、メッセージが公開されると「削除」することはできません。ブローカーはすべてのサブスクライバにほぼ即時に配信します。
あなたが探しているものは、共有サブスクリプションと呼ばれるものです。これにより、クライアントのグループは効果的に1つのユニットとしてトピックに登録することができ、メッセージはグループのいずれかにのみ配信されます。これは、ロードバランシングを目的としています。共有サブスクリプションは、v5の一部としてMQTT仕様に追加されます。
現在、多数のブローカがこの機能を実装しています(各ブローカはわずかに異なる実装であるため、v5までブローカの実装をシームレスに切り替えることはできません)。私は、次のブローカーが共有サブスクリプションのサポートのいくつかのバージョンを持っていると信じて、より多くのがあるかもしれない:
- HiveMQ
- IBMメッセージ視力アプライアンス
- サブスクリプションの主な目的は、にある場合
0
vernemq DB内のデータを永続させるには、MQTT Brokerの後端でAPI呼び出しまたはダイレクト・コード統合を使用してデータを取得して格納する必要があります。あなたは、QoS 0
関連する問題
- 1. viewpagerは最初のページを最初に読み込まなかったが、スワイプして最後のページに移動した後に読み込む
- 2. 最初のアルファベットと最後のアルファベットを読み取った後にC#で文字列を解析します。
- 3. 削除はリポジトリパターンで最初に読み取る必要がありますか?
- 4. Python MQTTメッセージを受け取った後にタイマーをリセットします
- 5. アンドロイドでpahoを持つMQTT、最初のメッセージのみを受信
- 6. サブスクライバが接続した後にパブリッシャが送信するメッセージのみを取得します(マストトランジット)
- 7. SMSメッセージをKitKatで動作しないメッセージの読み取り/未読または削除としてマーク
- 8. UIAlertViewはメッセージの最後の行を削除します
- 9. LiveData最初のコールバック後にObserverを削除します
- 10. Androidシステムでは、hasNextLine()は最初の行を読み取った後にfalseを返します
- 11. 反応ネイティブバーコードスキャナは、最初のコード読み取り後にコードを読み取ることを停止します。
- 12. フレーズを最初から最後まで削除するには
- 13. 最初に読み込まずにLINQ to SQLレコードを削除する
- 14. クロニクルの最後のメッセージを読み取る方法
- 15. クロニクルキュー - 最後の読み取り位置から読み取り、すべてのコンシューマが読む場合はファイルを削除します
- 16. チェックアウト後に最後にコミットが削除されました
- 17. 最初の読み込み後にMongoDBの読み込みが遅くなる
- 18. ログイン後最初のページの読み込み時に最初のページの読み込み時にコードを追加
- 19. コレクションの再読み込みは削除後に行います
- 20. ファイルを読み取った後のEOF?
- 21. 最初のページの読み込みと最初の読み込みボタンをクリックしました。
- 22. Fullcalendarの最初の読み込み時に間違ったサイズ
- 23. ファイルの最後の行の最後の8バイトを除いて最初の数バイトのファイルの最初の行を読み取ってファイルの残りの部分を読み取るためのRegexは何ですか?
- 24. PHPの爆発 - 文字列の最初の部分を削除し、最後の部分を削除します
- 25. プロジェクトドキュメントの削除が解除された後、シートアドオンの読み込みが停止されました
- 26. ObservableCollectionから最初のオブジェクトを削除した後にRectangle.OpacityMaskが消える
- 27. 最初のdivの削除ボタンを削除しますか?
- 28. php-ファイルを読み取っている間に文字を削除します
- 29. MQTTサブスクライバでアクションを実行
- 30. jqueryは読み込まれた後に重複要素を削除します
を使用するときは、QoS 1またはデータの損失を使用するときに重い負荷に最適なストレージ(あなたの質問で述べたように)、または重複可能性のためのQoS 2を使用する場合
サブスクライブは常にどちらかのオーバーヘッドをすることができご回答どうもありがとうございました。共有購読をサポートするブローカーを使用するかどうかを確認します。 – Raistlin
共有購読のためのIBM Message Sight構文と苦労した後、それは魅力的に機能します。どうもありがとうございました。 – Raistlin