「Web - MQTTブローカー」の版間の差分

ナビゲーションに移動 検索に移動
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>


案内メニュー