このトピックでは、Message Queuing Telemetry Transport (MQTT) 5.0 のメッセージ有効期限間隔機能について説明します。
機能の説明
MQTT 5.0 のメッセージ有効期限間隔機能を使用すると、ブローカーにパブリッシュされたメッセージの最大保存期間を指定できます。指定された間隔が経過した後、メッセージがサブスクライバーに配信されない場合、メッセージはブローカーから削除されます。メッセージ有効期限間隔機能は、メッセージの適時性を確保し、古い情報の配信を防ぎます。
制限
メッセージ有効期限間隔機能を設定しない場合、メッセージはデフォルトで期限切れになりません。
メッセージ有効期限間隔パラメーターに指定できる値の範囲は 1 分から 3 日です。
メッセージ有効期限間隔パラメーターに 1 分より短い保存期間を指定した場合、1 分が使用されます。メッセージ有効期限間隔パラメーターに 3 日より長い保存期間を指定した場合、3 日が使用されます。
シナリオ
リアルタイム監視: モノのインターネット (IoT) ダッシュボードおよびリアルタイムデータ監視システムでメッセージ有効期限間隔機能を使用できます。ダッシュボードまたはシステム内の古いセンサーデータは、不正確または無関係である可能性があります。
リアルタイム通信: 時間制限のある割引やフラッシュセールなど、メッセージを一定期間内にコンシューマーに送信する必要があるシナリオで、メッセージ有効期限間隔機能を使用できます。
緊急メッセージ: アラートやセキュリティ通知など、メッセージをすぐに送信する必要があるシナリオで、メッセージ有効期限間隔機能を使用できます。
注文とトランザクションの処理: 金融取引や注文処理など、特定の操作を特定の期間内に行う必要があるシナリオで、メッセージ有効期限間隔機能を使用できます。
例
例 1: IoT デバイスを使用して、工場内の機器の稼働状況を監視および報告します。次の形式で MQTT メッセージを使用し、メッセージ有効期限間隔を指定して、最新の稼働状況のみを処理できます。
PUBLISH
Topic: factory/machine1/status
Payload: RUNNING
QoS: 1
Message Expiry Interval: 300 // メッセージはパブリッシュされてから 300 秒(5 分)間保持されます。メッセージが 5 分以内にサブスクライバーによって受信されない場合、メッセージはブローカーのキューから削除され、他のサブスクライバーが古い情報を受信するのを防ぎます。
例 2: E コマース企業が時間制限のある割引に関するメッセージを送信したいと考えています。サンプルコード:
PUBLISH
Topic: store/promotions
Payload: 50off-for-next-30-minutes
QoS: 1
Message Expiry Interval: 1800 // 割引は 1800 秒(30 分)で期限切れになります。メッセージが 30 分以内にサブスクライバーによって受信されない場合、メッセージは期限切れになり、ブローカーから自動的に削除されます。
メッセージ有効期限間隔機能の主な利点は、最新かつ関連性のある情報のみがサブスクライバーに配信されることを保証することです。