MQTT:基础知识(一)

MQTT 是什么

MQTT(Message Queuing Telemetry Transport,消息队列遥测传输)是一种轻量级基于发布 / 订阅(Pub/Sub)模式的应用层网络协议,专为低带宽、高延迟、不稳定的网络环境(如物联网、嵌入式设备)设计

MQTT 的特点,如下:

  1. 轻量:协议头最小仅 2 字节,客户端代码体积小
  2. 低功耗:采用长连接 + 心跳机制,减少频繁建立连接的资源消耗
  3. 可靠:支持消息质量等级(QoS),保证不同场景下的消息传输可靠性
  4. 灵活:支持一对多、多对多通信

凡是"设备多、带宽小、网络不稳定、低功耗、实时上报/下发、一对多通信“的地方,几乎都可以用到 MQTT。

对比 RabbitMQ

对比 MQTT 和 RabbitMQ 的核心差异,可以从设计定位核心特性适用场景三个维度进行说明。

设计定位

MQTT 是轻量级物联网通信协议,专为海量轻量级设备设计,核心是设备端和云端双向通信的实时消息传输。RabbitMQ 是通用型消息中间件,基于 AMQP 协议,专为服务器和应用层的高可靠、复杂消息路由设计,核心是系统间的业务消息解耦。

  • MQTT:设备端与云端双向通信的实时传输
  • RabbitMQ:系统间的业务解耦

核心特性

特性MQTTRabbitMQ
通信模式单一:只有发布/订阅一种核心模式丰富:除了发布/订阅,还支持点对点(P2P)、请求-响应、延迟队列等
连接能力海量轻型:单台服务器可支撑 100 万 + 设备长连接,每个连接仅占用几 KB 内存少量重型:单台服务器支撑万级~十万级连接(服务器端应用),每个连接占用内存 MB 级
可靠性基础:通过 QoS 0/1/2 保证消息传输可靠性,仅覆盖 “消息是否送达” 的基础需求极致:提供消息持久化、生产者确认、消费者确认、死信队列、事务等全套可靠性机制

适用场景

不同的特性适用不同的场景,MQTT 适用于涉及硬件设备、低功耗/低带宽、数据上报/指令下发、无需复杂消息路由的应用场景,而 RabbitMQ 适用于纯服务器/应用层通信、复杂消息分发规则、可靠性要求高的应用场景。

结合 LLM

MQTT 是 LLM 与物理世界连接的桥梁,沟通过流程如下:

flowchart LR id1([设备数据]) --> id2(MQTT) --> id3([LLM 理解意图]) id4(LLM 生成指令) --> id2 --> id5(控制设备)

MQTT 在 LLM 体系中的作用:

  1. 感知) LLM 提供感知能力:传感器、智能设备、机器人、车载终端等,通过 MQTT 轻量上报状态与数据,通过 MQTT 上传到云端,成为 LLM 的输入信息
  2. 控制)让 LLM 具备控制现实世界的能力:LLM 理解用户意图后生成指令,通过 MQTT 下发到设备,设备订阅主题并执行
  3. 依赖)适配 LLM + 物联网的弱网、低功耗场景:边缘端设备性能受限、弱网络条件

MQTT 主要用来让 LLM 跟现实世界打通。设备通过 MQTT 把状态、语音、传感器数据传给 LLM,LLM 理解意图后,再通过 MQTT 下发控制指令到设备。它轻量、稳定、适合弱网和海量设备,是 LLM 实现感知和控制物理世界的关键通信协议。