Opensourcetechブログ

OpensourcetechによるNGINX/Kubernetes/Zabbix/Neo4j/Linuxなどオープンソース技術に関するブログです。

MQTT(Message Queuing Telemetry Transport)とは

MQTT(Message Queuing Telemetry Transport)は、限られたリソースのデバイスでも効率的にメッセージをやり取りできるように設計された軽量なプロトコルです。

 

パブリッシャ (送信側) 📤

 

パブリッシャは、情報を生成して送信するクライアントです。この図では、温湿度センサーが接続されたIoTデバイスとして表現されています。このデバイスは、例えば室内の温度や湿度といったデータを測定し、その情報を特定のトピック(例: /home/living_room/temperature/home/living_room/humidity)に関連付けてMQTTブローカーに送信します。パブリッシャは、メッセージの送信先を直接知る必要はなく、ブローカーにメッセージを「発行」するだけです。

 

MQTTブローカー (中央の仲介役) 🧠

 

MQTTブローカーは、パブリッシャから送られてきたメッセージを受け取り、それを適切なサブスクライバに転送する中央サーバーです。ブローカーは、メッセージをその内容に応じてトピックというカテゴリに分類して管理します。サブスクライバが特定のトピックを「購読」している場合、ブローカーはそのトピックに新しいメッセージが届くと、該当するサブスクライバにメッセージを配信します。これにより、パブリッシャとサブスクライバは直接通信することなく、ブローカーを介して非同期に情報をやり取りできます。

 

サブスクライバ (受信側) 📥

 

サブスクライバは、ブローカーから情報を受信するクライアントです。この図では、スマートフォンに表示されるグラフとして表現されています。サブスクライバは、関心のあるトピック(例: /home/living_room/temperature)をブローカーに登録(サブスクライブ)します。ブローカーは、そのトピックに新しいデータが届くと、サブスクライバであるスマートフォンアプリにメッセージを配信し、アプリは受信した温湿度データをグラフとしてリアルタイムに表示することができます。

 

この「発行/購読」モデルにより、MQTTは柔軟でスケーラブルなシステムを構築することを可能にし、IoTアプリケーションにおいて非常に重要な役割を担っています。

Opensourcetech by Takahiro Kujirai