mqtt 系列之综述

1 mqtt 起源

MQTT 的全称为 Message Queue Telemetry Transport,是在 1999 年,由 IBM 两位工程师为通信卫星网络连接输油管道的项目开发的。其主要目的是为了满足低电量消耗和低网络宽带的需求,MQTT 协议在设计之初就包含了一下特点:

  1. 实现简单
  2. 提供数据传输的 QoS
  3. 轻量、占用宽带低
  4. 可传输的任意类型的数据
  5. 可保持的会话

之后 IBM 一直将其当做一个内部协议使用,后来由于物联网的发展,需要标准协议支撑,MQTT 从而广泛的使用于物联网。

2 mqtt 特性

mqtt 协议具有以下特性:

  • 基于 TCP 协议的应用层协议
  • 采用 C/S 架构
  • 使用订阅/发布模式,将消息的发送方和接收方解耦
  • 提供 3 种消息的 QoS(Quality of Service):至多一次,最少一次,有且只有一次
  • 收发消息都是异步的,发送方不需要等待接收方的应答

3 mqtt 与传统消息队列的区别

虽然 MQTT 协议名称中有 Message Queue 这个名词,但是它并不是一个 RabbitMQ 那样的消息队列。MQTT 与传统的消息队列相比有如下区别:

  1. 在传统消息队列中,在发送消息之前,必须先创建相应的队列;在 MQTT 中不需要先创建要发布的主题(可订阅的 Topic);
  2. 在传统消息队列中,未被消费的消息总是被保存在某个队列中,直到有一个消费者将其消费;在 MQTT 中,如果发布一个没有被任何客户端订阅的消息,这个消息将被直接丢弃;
  3. 在传统的消息队列中,一个消息只能被一个客户端获取;在 MQTT 中一个消息可以被多个订阅者获取,MQTT 协议不支持指定消息被单一客户获取。

MQTT 协议可以为大量的低功率、工作网络环境不可靠的物联网设备提供通讯保障,而它的应用范围确不止于此,在移动互联网行业也广泛使用,如Android app 的推动功能,IM等都有基于 MQTT 的实现。

你可能感兴趣的:(mqtt 系列之综述)