MQTT应用笔记
阅读量: 101阅读人次: 102
什么是MQTT?它的核心设计目标是什么?
MQTT(Message Queuing Telemetry Transport)是一种轻量级的消息传输协议,专为受限环境设计,广泛应用于物联网(IoT)通信。以下是其核心设计目标及关键特性:
-
轻量级、低带宽、低功耗,基于TCP/IP协议,支持异步通信。
-
发布者(Publisher)、订阅者(Subscriber)、代理(Broker)的三方架构,解耦生产者和消费者。
- 主题(Topic)机制:支持层级化主题(如
home/kitchen/temperature
),实现高效消息过滤。
- 主题(Topic)机制:支持层级化主题(如
-
适应高延迟、不稳定网络,适合资源受限的嵌入式设备。
MQTT的QoS等级有哪些?它们的实现机制有何区别?
QoS(服务质量)等级定义了消息传输的可靠性保证,共有三个等级:QoS 0、QoS 1 和 QoS 2。它们的核心区别在于确认机制和消息传递的可靠性,具体实现机制如下:
-
QoS 0(At Most Once)
可靠性:最低,消息最多传递一次,可能丢失。
实现机制:
- 发送方直接发送消息(PUBLISH),不等待确认。
- 接收方无需回复确认。
适用场景:实时性要求高、允许偶发丢失的场景(如环境传感器数据)。
-
QoS 1(At Least Once)
可靠性:中等,消息至少传递一次,可能重复。
实现机制:
- 发送方发送PUBLISH并持久化消息,等待确认(PUBACK)。
- 接收方收到消息后回复PUBACK。
- 若发送方未收到PUBACK,会重复发送直到收到确认。
关键点:依赖消息ID(Packet ID)跟踪消息状态。
适用场景:需可靠传输但允许重复的场景(如控制指令,应用层可去重)。
-
QoS 2(Exactly Once)