京墨科技

MQTT 协议入门与实践

2026-07-08
MQTT IoT 物联网协议

什么是 MQTT

MQTT(Message Queuing Telemetry Transport)是一种基于发布/订阅模式的轻量级物联网通信协议,由 IBM 于 1999 年发布。它设计用于低带宽、高延迟、不可靠网络环境下的设备间通信,是物联网领域最流行的协议之一。

核心概念

  • Broker(代理服务器):消息中枢,负责接收和转发所有消息
  • Topic(主题):消息的分类标签,如 /home/sensor/temperature
  • Publisher(发布者):发送消息到指定 Topic 的设备
  • Subscriber(订阅者):接收指定 Topic 消息的设备

QoS 服务质量

MQTT 提供三级服务质量,根据场景选择:

QoS 名称 说明 适用场景
0 最多一次 消息只发一次,不确认,可能丢失 传感器高频上报
1 至少一次 确保到达,但可能重复 一般遥测数据
2 恰好一次 保证到达且不重复(开销大) 关键控制指令

常用 Broker 对比

Broker 特点 适用
Mosquitto C 实现,轻量,单机首选 嵌入式/小规模
EMQX Erlang 实现,高并发,万级连接 企业级/IoT 平台
NanoMQ C 实现,超轻量,边缘端 边缘计算
HiveMQ Java 实现,商业支持好 工业/汽车

Mosquitto 快速部署

# Ubuntu/Debian 安装
sudo apt install mosquitto mosquitto-clients

# 启动 Broker
sudo systemctl start mosquitto

# 订阅测试
mosquitto_sub -t "test/topic" -v

# 发布测试
mosquitto_pub -t "test/topic" -m "Hello MQTT"

通配符规则

  • 单层 +:匹配一层,如 sensor/+/temp 匹配 sensor/1/temp
  • 多层 #:匹配所有子层,如 sensor/# 匹配 sensor/1/tempsensor/2/humi

提示# 只能放在结尾,+ 可用于中间层。