1 mqtt 起源
MQTT 的全称为 Message Queue Telemetry Transport,是在 1999 年,由 IBM 两位工程师为通信卫星网络连接输油管道的项目开发的。其主要目的是为了满足低电量消耗和低网络宽带的需求,MQTT 协议在设计之初就包含了一下特点:
- 实现简单
- 提供数据传输的 QoS
- 轻量、占用宽带低
- 可传输的任意类型的数据
- 可保持的会话
之后 IBM 一直将其当做一个内部协议使用,后来由于物联网的发展,需要标准协议支撑,MQTT 从而广泛的使用于物联网。
2 mqtt 特性
mqtt 协议具有以下特性:
- 基于 TCP 协议的应用层协议
- 采用 C/S 架构
- 使用订阅/发布模式,将消息的发送方和接收方解耦
- 提供 3 种消息的 QoS(Quality of Service):至多一次,最少一次,有且只有一次
- 收发消息都是异步的,发送方不需要等待接收方的应答
3 mqtt 与传统消息队列的区别
虽然 MQTT 协议名称中有 Message Queue 这个名词,但是它并不是一个 RabbitMQ 那样的消息队列。MQTT 与传统的消息队列相比有如下区别:
- 在传统消息队列中,在发送消息之前,必须先创建相应的队列;在 MQTT 中不需要先创建要发布的主题(可订阅的 Topic);
- 在传统消息队列中,未被消费的消息总是被保存在某个队列中,直到有一个消费者将其消费;在 MQTT 中,如果发布一个没有被任何客户端订阅的消息,这个消息将被直接丢弃;
- 在传统的消息队列中,一个消息只能被一个客户端获取;在 MQTT 中一个消息可以被多个订阅者获取,MQTT 协议不支持指定消息被单一客户获取。
MQTT 协议可以为大量的低功率、工作网络环境不可靠的物联网设备提供通讯保障,而它的应用范围确不止于此,在移动互联网行业也广泛使用,如Android app 的推动功能,IM等都有基于 MQTT 的实现。
网友评论