13,005
回編集
34行目: | 34行目: | ||
<br> | <br> | ||
[[ファイル:MQTT Broker 1.png|フレームなし|中央]] | [[ファイル:MQTT Broker 1.png|フレームなし|中央]] | ||
<br><br> | |||
== MQTTブローカーとサブスクライバを兼ねるケース == | |||
以下に示すような代表的なユースケースがある。<br> | |||
<br> | |||
* モニタリング / 管理目的 | |||
*: ブローカー自身が各トピックのメッセージをサブスクライブして監視する場合 | |||
*: システムの健全性を確認する場合 | |||
*: メッセージ統計の収集する場合 | |||
*: アクセスログの記録する場合 | |||
<br> | |||
* ブリッジング | |||
*: 複数のMQTTブローカー間でメッセージを中継する場合 | |||
*: あるブローカーがサブスクライバとして他のブローカーからメッセージを受信して、自身のブローカーとしての機能で配信する場合 | |||
<br> | |||
* データの加工 / 集約 | |||
*: 複数のトピックからメッセージを受信して加工する場合 | |||
*: 加工したデータを新しいトピックとして配信する場合 | |||
<br> | |||
* セキュリティ / フィルタリング | |||
*: メッセージの内容を検証 | |||
*: 不正なメッセージのフィルタリング | |||
<br> | |||
ただし、このような構成をとる場合は注意が必要となる。<br> | |||
* ブローカーの負荷が増加する可能性がある。 | |||
* 設計が複雑になりやすい。 | |||
* 障害発生時の影響範囲が広がる可能性がある。 | |||
<br><br> | |||
== MQTTブローカーがパブリッシャーを兼ねるケース == | |||
MQTTブローカーがパブリッシャーとしても機能することにより、システム管理や監視の効率化が図ることができる。<br> | |||
システムの複雑性とのバランスを考慮する必要がある。<br> | |||
<br> | |||
主な用途として、以下に示すようなものがある。<br> | |||
<br> | |||
* システム状態の通知 | |||
*: ブローカー自身の状態情報(CPU使用率、メモリ使用量など) | |||
*: 接続クライアント数 | |||
*: システムヘルスチェック結果 | |||
*: $SYS/トピック配下での統計情報の配信 | |||
<br> | |||
* 管理機能の提供 | |||
*: クライアントの接続/切断通知 | |||
*: セッション状態の変更通知 | |||
*: 認証/認可の結果通知 | |||
*: システムメンテナンス情報の配信 | |||
<br> | |||
* デバイス管理 | |||
*: デバイスの構成変更指示 | |||
*: ファームウェアアップデート通知 | |||
*: リモートコマンド実行結果 | |||
<br> | |||
* エラーハンドリング | |||
*: エラー状態の通知 | |||
*: 異常検知時のアラート | |||
*: フォールバック処理の実行結果 | |||
<br> | |||
* Last Will and Testament (LWT) の管理 | |||
*: クライアントの異常切断検知時のメッセージ配信 | |||
*: フェイルオーバー通知 | |||
<br> | |||
<u>※運用上の注意</u><br> | |||
* メッセージの優先順位付け (システムメッセージvs通常メッセージ) | |||
* パブリッシュ頻度の適切な設定 | |||
* システムメッセージとアプリケーションメッセージの分離 | |||
* セキュリティ (システムメッセージへのアクセス制御) | |||
<br><br> | <br><br> | ||