MQTT 常见应用场景

1. 物联网(IoT)设备监控

📱 传感器设备

  • 温度传感器
  • 湿度传感器
  • 压力传感器
  • GPS 定位器

🔄 MQTT Broker

消息路由与分发

🖥️ 后端服务

  • 数据存储
  • 数据分析
  • 告警系统
# 典型主题设计
devices/{device_id}/telemetry      # 遥测数据
devices/{device_id}/status         # 设备状态
devices/{device_id}/commands       # 控制命令
devices/{device_id}/commands/resp  # 命令响应

2. 实时消息推送

MQTT 的长连接特性使其非常适合实时消息推送场景,如聊天应用、通知系统等。

💬 即时聊天

用户上线即订阅个人主题,消息实时送达

users/{user_id}/messages
users/{user_id}/presence

🔔 系统通知

推送系统公告、订单状态变更等通知

notifications/{user_id}
orders/{order_id}/status

📊 实时数据

股票行情、体育比分等实时数据推送

stocks/{symbol}/price
scores/{match_id}/live

3. 智能家居系统

🏠 智能家居中枢

MQTT Broker

💡 智能灯泡 home/lights/living-room
🌡️ 温控器 home/thermostat
🔒 智能门锁 home/locks/front-door
📷 摄像头 home/cameras/{id}/status
🔔 传感器 home/sensors/{type}
📱 手机 App home/app/commands

🏠 智能家居主题设计示例

设备 控制主题 状态主题
灯泡 home/lights/+/set home/lights/+/state
窗帘 home/blinds/+/set home/blinds/+/position
空调 home/ac/+/command home/ac/+/status

4. 日志收集与监控

使用 MQTT 收集分布式系统的日志和指标数据,通过 Retained Message 保留最新状态。

# 服务状态(使用 Retain 标志)
services/{service_id}/health      # {"status": "healthy", "uptime": 3600}
services/{service_id}/metrics     # {"cpu": 45%, "mem": 2.1GB}

# 日志收集
logs/{service_id}/{level}         # level: debug, info, warn, error
logs/{service_id}/errors          # 仅错误日志

# 告警
alerts/{severity}/{service_id}    # severity: critical, warning, info

应用服务

发布日志/指标

MQTT Broker

消息路由

数据处理

存储/分析/告警

5. 车联网(V2X)

🚗 车辆遥测

实时上报车辆位置、速度、电量等数据

vehicles/{vin}/location
vehicles/{vin}/telemetry
vehicles/{vin}/battery

🔧 远程诊断

故障码上报、远程诊断命令

vehicles/{vin}/diagnostics
vehicles/{vin}/dtc         # 故障码

📡 OTA 升级

固件升级通知、进度上报

vehicles/{vin}/ota/status
vehicles/{vin}/ota/progress

6. 工业物联网(IIoT)

在工业环境中,MQTT 用于连接 PLC、传感器、SCADA 系统等设备。

🏭 工业场景特点

  • 高可靠性: 使用 QoS 1 或 QoS 2 确保消息送达
  • 低延迟: 本地部署 Broker,减少网络延迟
  • 安全性: TLS 加密 + 客户端证书认证
  • 大规模: 支持数万设备并发连接
# 工业主题命名规范(参考 Sparkplug B)
spBv1.0/{Group ID}/DDATA/{Device ID}    # 设备数据
spBv1.0/{Group ID}/NCMD/{Device ID}     # 节点命令
spBv1.0/{Group ID}/DCMD/{Device ID}     # 设备命令
spBv1.0/{Group ID}/STATE                # 边缘节点状态

7. 移动应用消息同步

移动 App 使用 MQTT 保持长连接,实现消息同步、状态更新等功能。

📲 消息同步

多设备消息同步,已读状态同步

👥 在线状态

使用 Last Will 实现下线检测

🔄 数据同步

使用 Retained Message 保存最新状态