Skip to content

Retained Messages

EMQXのRetained Messagesページでは、すべての保持メッセージを確認できます。ユーザーが保持メッセージをパブリッシュすると、EMQXはこのメッセージをシステム内に保存します。ユーザーはRetained Messagesページでこのメッセージを確認でき、保持メッセージのトピックをサブスクライブすると、EMQXはそのメッセージをトピックにパブリッシュし、ユーザーは即座にメッセージを受信できます。保持メッセージは、ユーザーが手動で削除しない限り、デフォルトで期限切れになりません。

Retained Messages List

Retained Messages Listには、現在システムに保存されているすべての保持メッセージが表示されます。リストにはトピック、QoSレベル、パブリッシャーのClient ID、保持メッセージがパブリッシュされた時間が含まれます。リスト内のShow PayloadボタンとDeleteボタンをクリックすることで、それぞれ保持メッセージのペイロードを確認したり、保持メッセージを削除したりできます。右上のRefreshボタンをクリックすると現在の保持メッセージリストが更新され、Settingsをクリックすると保持メッセージ設定ページに遷移します。

EMQXはデフォルトで3つのシステムトピックのメッセージを保持します。クラスター環境では、異なるシステムトピックの保持メッセージはノード名に基づいて保存されます。

  • $SYS/brokers/+/sysdescr: 現在のEMQXノードのシステム説明。
  • $SYS/brokers/+/version: 現在のEMQXノードのバージョン番号。
  • $SYS/brokers: 現在のEMQXクラスター内のすべてのノードの数と名前。

image

Delete Retained Message

通常、クライアントから保持メッセージのトピックに空のメッセージをパブリッシュすることで保持メッセージを削除できます。この方法に加え、保持メッセージリストのDeleteボタンをクリックして特定の保持メッセージを削除することも可能です。さらに、Clear Allボタンを使用してクラスター全体の保持メッセージを一括削除することもできます。保持メッセージの有効期限は保持メッセージ設定ページで設定でき、有効期限に達した保持メッセージはEMQXが自動的に削除します。

View Payload

保持メッセージのペイロードを確認したい場合は、保持メッセージ項目のActions列にあるShow Payloadをクリックしてください。

ポップアップウィンドウでは、右下のCopyボタンをクリックしてペイロードをコピーできます。また、左下のドロップダウンリストからペイロードの表示形式を選択でき、JSONや16進数など特定のペイロード形式をより直感的に表示できます。

Retainer Settings

Retained Messagesページ右上のSettingsボタンをクリックすると、Management -> MQTT SettingsページのRetainerタブに遷移します。ここで保持メッセージ機能の有効/無効を切り替えたり、保持メッセージの設定を行えます。

TIP

保持メッセージ機能をトグルスイッチで無効にすると、Retained MessagesページにEnableボタンが表示されます。このボタンをクリックすると、Retainerタブに遷移します。

mqtt-settings-retainer

以下は各項目の詳細説明です。

設定項目タイプオプション値デフォルト値説明
Storage Type-Built-in Database--
Storage MethodEnumram, discramram: メモリのみ保存
disc: メモリとハードディスクに保存。
Max Retained MessagesInteger≥ 00 (無制限)0は無制限。
最大保持メッセージ数を設定すると、上限に達した際に既存のメッセージが置き換えられます。ただし新しいトピックの保持メッセージは上限を超えて保存できません。
Max Payload SizeBytesize1MBメッセージの最大ペイロードサイズ。超過した場合、EMQXは保持メッセージではなく通常メッセージとして扱います。
Message Expire IntervalDuration期限切れなし保持メッセージの有効期限。0は期限切れなし。PUBLISHパケットにメッセージ有効期限が設定されている場合は、そちらが優先されます。
Message Clear IntervalDuration無効期限切れメッセージをクリーンアップする間隔。
Max Publish RateInteger≥ 02000保持メッセージのパブリッシュ最大レート。上限を超えたメッセージは配信されますが保持されません。
Deliver RateInteger≥ 01000保持メッセージの配信最大レート。