Files
obsidian_sycn/知识管理/网页剪辑/developer.aliyun.com/MQTT协议详解及v5.0实践-阿里云开发者社区.md
T
2026-07-31 15:28:08 +08:00

41 lines
2.2 KiB
Markdown

---
doc_type: hypothesis-highlights
url: 'https://developer.aliyun.com/article/786001'
---
# MQTT协议详解及v5.0实践-阿里云开发者社区
## Metadata
- Author: [developer.aliyun.com]()
- Title: MQTT协议详解及v5.0实践-阿里云开发者社区
- Reference: https://developer.aliyun.com/article/786001
- Category: #source/article🗞
- Tags:
## Highlights
- MQTTv3协议是为在低带宽、不可靠的网络上工作的传感器而设计的基于TCP的应用层协议,适用于IoT场景
- 使用发布/订阅消息模式,支持一对多的消息分发
- 报文格式设计精简, 适用于小规模数据传输以及资源受限的IoT设备
- 支持QoS0、QoS1、QoS2 三种消息QoS。
- MQTT-SN(Sensor Networks) 是MQTT协议的传感器网络版本,最早用在zigBee无线网络中,主要面对电池供电,有限的处理器能力和存储能力的设备。只有很小的内存和CPU,TCP 对于这些设备来说非常奢侈,甚至无法允许TCP协议栈。
- MQTT 5.0在协议层提供了更大的自定义扩展空间,平台基于扩展点可支持更丰富的协议能力
- 设备状态一致性策略设计,包括session管理机制、心跳检测机制、异地登陆问题、状态最终一致性策略
- 协议层本地有session管理器来对本地会话进行管理,通过心跳检测、会话自检来保证跟设备之间的连接状态一致性
- 设备状态一致性策略:设备到MQTT协议接入层之间是tcp长连接,通过心跳机制保证心跳周期内设备状态的最终一致性
- 通过分布式会话版本号,保证分布式会话并发更新安全,通过上行消息/心跳定时触发会话自检机制,解决异常情况下本地/分布式会话状态不一致的问题。
- MQTT协议是基于PUB/SUB的异步通信模式
- MQTT协议层针对不同场景支持多种MQTT接入方式,同时支持tcp直连、tls、ws、wss等方式接入
- 协议层实现了多协议端口复用,也就是一个端口同时支持多种协议
- 通过topic中包含的messageId匹配请求与响应,对业务数据零侵入messageId的生成与匹配、超时控制等逻辑,调用方无感知简化了业务方调用逻辑,扩展了MQTT使用场景。