一、简介
MQTT(Message Queuing Telemetry Transport,消息队列遥测传输),最早是1999年由IBM开发的基于发布/订阅范式的消息协议,是一种极其简单和轻量级的消息协议,专为受限设备和低带宽、高延迟或不可靠的网络设计。
自1999年以来, 已在多个行业广泛实施,是一种物联网和移动互联网领域的行业标准协议,适合移动终端之间的数据传输,用于端与云之间的消息传递,实现真正意义上的万物互联。
二、应用场景
由于MQTT 版的多协议、多语言和多平台的支持能力的特性,使其目前广泛应用于机器与机器(M2M)通信和物联网(IoT)领域,覆盖了车联网、智能餐饮、即时聊天、智能家居、医疗设备、物流等多种应用场景。
三、协议特性
-
发布/订阅范式消息模式,提供一对多的消息发布;
-
使用 TCP/IP 提供网络连接,实现有序的、可靠的、双向字节流传输;
-
小型传输,开销很小(固定长度的头部是 2 字节),协议交换最小化,以降低网络流量;
-
使用 Last Will(遗言机制) 和 Testament (遗嘱机制)通知有关各方客户端异常中断的机制;
-
消息服务质量(QoS)支持,可靠传输保证,三种消息发布服务质量(QoS):
分类 | 描述 |
---|---|
QoS0:至多一次 | 消息发布完全依赖底层 TCP/IP 网络。会发生消息丢失或重复。这一级别可用于如下情况,环境传感器数据,丢失一次读记录无所谓,因为不久后还会有第二次发送 |
QoS1:至少一次 | 确保消息到达,但消息重复可能会发生 |
QoS2:只有一次 | 确保消息到达一次。这一级别可用于如下情况,在计费系统中,消息重复或丢失会导致不正确的结果 |