Docker部署Eclipse Mosquitto开源MQTT的消息代理环境步骤(实践)

1.前言

Eclipse Mosquitto是一个开源(EPL/EDL许可)的消息代理,实现了MQTT协议的版本5.0、3.1.1和3.1。Mosquitto是轻量级的,适用于从低功耗单板计算机到完整服务器的所有设备。

MQTT协议提供了一种轻量级的消息传输方法,采用发布/订阅模型。这使得它非常适合用于物联网消息传递,例如低功耗传感器或手机、嵌入式计算机或微控制器等移动设备。

Mosquitto项目还提供了一个用于实现MQTT客户端的C库,以及非常流行的mosquitto_pub和mosquitto_sub命令行MQTT客户端。

Mosquitto是Eclipse Foundation的一部分,是iot.eclipse.org项目的一部分。该项目由Cedalo推动开发。在这里插入图片描述
在GitHub上拥有8.3KStarts.项目的仓库地址为:mosquitto
在这里插入图片描述

2. docker 安装Eclipse Mosquitto

1、执行搜索指令找到官方镜像

docker search mosquitto

在这里插入图片描述
我们下载带有OFFICIAL标志的镜像

2、下载Image镜像

docker pull eclipse-mosquitto

在这里插入图片描述

3、配置映射目录

在这里插入图片描述

4、配置container容器到指定目录和映射端口

docker run -d --name my-mosquitto -p 1883:1883 -p 9001:9001 -v /d/docker/mosquitto/data:/mosquitto/data -v /d/docker/mosquitto/log:/mosquitto/log  -v /d/docker/mosquitto/config:/mosquitto/config eclipse-mosquitto

在这里插入图片描述

创建配置文件,并且写入配置内容,保存完毕后重启。

listener 1883
listener 9001
protocol websockets
persistence true
persistence_file mosquitto.db
persistence_location /mosquitto/data/
log_dest file /mosquitto/log/mosquitto.log
#Authentication
allow_anonymous true
password_file /mosquitto/config/pwfile

为了方便测试,我在这里开启了匿名访问allow_anonymous true。生产环境,应当改为False.

5、配置用户和密码

  1. 在config文件夹新增空文件pwfile.conf

  2. 查看容器

docker ps
  1. 进入容器,执行命令

docker exec -it b7c36ec27a62 sh
mosquitto_passwd -b /mosquitto/config/pwfile.conf root root

在这里插入图片描述
4. 查看生成密码文件内容
在这里插入图片描述

6、命令行测试

mosquitto_pub 和 mosquitto_sub 是 Mosquitto MQTT 代理的命令行客户端工具,用于发布(publish)和订阅(subscribe)MQTT 消息。

  • mosquitto_pub:用于发布 MQTT 消息到指定的主题(topic)。
  • mosquitto_sub:用于订阅 MQTT 主题,并接收对应主题下的消息。
    这些工具通常用于测试 MQTT 代理的功能、与 MQTT 代理进行交互,或者在脚本中执行一些 MQTT 消息发布和订阅的操作。

它们的基本用法示例:
mosquitto_pub:

mosquitto_pub -h <hostname> -t <topic> -m "message"

其中:

  • 是 MQTT 代理的主机名或 IP 地址。
  • 是要发布消息到的 MQTT 主题。
  • “message” 是要发布的消息内容。
    mosquitto_sub:
mosquitto_sub -h <hostname> -t <topic>

其中:

  • 是 MQTT 代理的主机名或 IP 地址。
  • 是要订阅的 MQTT 主题。
    使用这些命令,可以轻松地在命令行界面上与 MQTT 代理进行通信,发布和订阅消息。

7、测试步骤:

  1. 进入容器,打开命令窗口,执行订阅命令
mosquitto_sub -h localhost -t topic
  1. 进入容器,开启新的命令窗口,执行发布命令
mosquitto_pub -h localhost -t topic -m "message"
  1. 展示执行结果
    在这里插入图片描述

3. 配置客户端

  1. 下载mqtt.fx客户端进行连接测试。直达下载链接
    在这里插入图片描述
  2. 配置连接
    在这里插入图片描述
  3. 测试连接

连接成功,发布Key,值为value-2024
在这里插入图片描述
订阅Key,接收值为:
在这里插入图片描述

4.其他安装方法

  1. 应用程序安装

如果你觉得Docker安装Eclipse Mosquitto比较麻烦的话,也可以直接安装应用程序。官网详细介绍安装步骤:

How to Install the Mosquitto MQTT Broker on Windows? - IoTEDU

  1. Docker Compose安装

此文章有详细的安装教学:Setting up the Mosquitto MQTT Broker using Docker Compose - Pi My Life Up

docker-compose 代码如下:

services:
  mosquitto:
    image: eclipse-mosquitto
    container_name: mosquitto
    volumes:
      - ./config:/mosquitto/config
      - ./data:/mosquitto/data
      - ./log:/mosquitto/log
    ports:
      - 1883:1883
      - 9001:9001
    stdin_open: true 
    tty: true

其他配置步骤类似。

5. 总结

环境安装只是开发的第一步,后续我们将在此基础上进行MQTT的开发。

6. 参考文档

  • 16
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

dotnet研习社

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值