2.2 KiB
2.2 KiB
doc_type, url
| doc_type | url |
|---|---|
| hypothesis-highlights | 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使用场景。