MQTTをmosquittoで試しました

 1.概要

IoTデバイス向け通信方式としてMQTTが広く利用されています。Queueと聞くと待ち行列で駅に人が到着するモデルが浮かびます。また、汎用機のジョブ管理(JES2等)のジョブキューや出力キュー、オンライントランザクション処理のインプットキュー等の方が私にはわかりやすく感じます。ネットで調べると、MQTTのmosquittoが簡単で一般的とのことなので、試してみました。その内容を記述します。

2.詳細

参考資料のdocker-hubの記述に従って実施します。

(1) 1個めのterminalを起動

まず、ディレクトリを作成
mkdir ~/mosquitto/config
cd ~/mosquitto/config
vi mosquitto.conf

エディットする中身は下記内容です
persistence true
persistence_location /mosquitto/data/
log_dest file /mosquitto/log/mosquitto.log

起動
docker run -it -p 1883:1883 -v "$PWD/mosquitto/config:/mosquitto/config" eclipse-mosquitto

下記メッセージが表示されるとOKです。
Status: Downloaded newer image for eclipse-mosquitto:latest

操作方法はdocker-hubに記載はありません。別の参考資料を参照します。

(2) 2個めのterminalを起動

docker ps
containerIDを確認して、
docker exec -it <containerID> sh
mosquitto_sub -h localhost -t test 
これで受信できる状態になりました

(3) 3個めのterminalを起動

docker ps
containerIDを確認して、
docker exec -it <containerID> sh
mosquitto_pub -h localhost -t test -m "send message"
ここで(2)のterminalにsend messageが表示されると完了です。

3.所見

の良いところはランダムに発生するデータをシーケンシャルに変更して順次処理に帰る点です。これでオンライン処理とデータ同期の問題をFIFOで解決することができます。また、他のシステムとの連携などのような非同期環境との連携もQueueを利用して解決できます。MQTTのmosquittoはその基礎部分なので一度学習しておくことは良いことだと思います。

参考

[外部サイト参照]
eclipse-mosquitto
MQTTブローカーのセットアップ

コメント

過去30日間に良く読まれた記事

miniPCのBMAXでWindows11のsecure boot設定漏れでトラブル発生

LinuxMint/ubuntuにWine 11導入を試しました ( LinuxMint 21.3 / 22.3 ubuntu 22.04 / 26.04 Wine 11.0 / 11.6 / 11.8 / 11.13 )

Windows95/98のPCゲームをUbuntu/LinuxMintの最新PCで楽しむ方法 ( KVM / Wine / dosbox-x / midi )