欢迎来到 MQTT 入门的第一部分。关于 MQTT 协议中的核心特性和概念的博客系列。这篇文章介绍了 MQTT 入门系列,以及我们将在 2017 年的博客上介绍。此外,它还将介绍 MQTT 和协议的一些一般信息和背景。 http://www.iotn2n.com/
一, MQTT 入门:本教程的目的和内容是什么? 在讨论今天的主题之前,我们想解释一下为什么我们决定写这个系列,是谁,以及将要讨论的主题。我们与 MQTT 合作已有四年多,我们已经在不同的平台(客户,会议,在线)上回答了有关发布 /订阅,服务质量等众多其他核心概念的基本问题。因此,使用 MQTT 入门来覆盖主要概念和问题,可以作为所有类型用户的参考指南。 MQTT 是一个开放协议,因此任何有兴趣的人都可以自由的了解和访问关于如何使用它的信息。
我们非常高兴这一点,希望你会发现这个内容有用。
本教程的目的和内容是什么呢?首先,我们将讨论 MQTT (发布 /订阅,客户端 /代理)和基本功能(连接,发布,订阅)的基本概念。之后,我们将逐一讨论服务质量,保留消息,持久会话,最后意志和遗嘱以及 SYS 主题的功能。整个系列将是大约 10 个单独的单元。我们在入门系列中明确不包含的是安全相关内容。我们知道这是一个非常重要的话题,不应该被忽视。这就是为什么我们计划一个单独的系列特别讲述关于 MQTT 安全方面的基本要素。
二、 MQTT 简介: MQTT 是基于代理的发布 /订阅消息传输协议,设计开放、简单、轻量,方便、易于实施。这些特性使其非常适合在许多情况下使用,包括受限环境,例如在机器对机器( M2M )和物联网( IoT )上下文中的通信,这些场景需要小的代码占用空间和 /或网络带宽是非常有限。
MQTT 规范的摘要在描述 MQTT 是什么方面做得很好。它是非常轻量级的二进制协议,小型传输,开销很小(固定长度的头部是 2 字节),协议交换最小化,以降低网络流量。另一个重要的方面是 MQTT 在客户端非常容易实现,特别适合资源受限的设备。实际上,这是 MQTT 被发明的目标之一。
三、一点点的历史: MQTT 是由 Andy Stanford-Clark ( IBM )和 Arlen Nipper ( Arcom ,现在的 Cirrus Link )于 1999 年发明的,当时他们的使用案例是创建一个协议,用于通过卫星连接连接石油管道的最小电池损耗和最小带宽。他们指定了未来协议应该具有的以下目标:
1 、易于实现 2 、提供服务质量数据传送 3 、轻量级和带宽效率 4 、数据不可知 5 、连续会话感知
这些目标仍然是 MQTT 的核心,而重点已经从专有嵌入式系统改为开放物联网用例。另一个常常被困惑于 MQTT 的事情是缩写 MQTT 的适当含义。这是一个长的故事,简短的回答是, MQTT 不再是每个单词首字母缩写,它只是 MQTT 。
四、 MQ 遥测运输: 虽然 MQTT 并且是 IBM 支持开发协议和产品,并在 1999 年发布时被命名,也引用了 MQ 系列中的一些概念,因此通常 MQTT 被错误地命名为消息队列协议,但这不是真的。在传统的消息队列解决方案中没有队列。然而,在某些情况下可以排队消息,但是这将在稍后的文章中详细讨论。因此,在 MQTT 已经被 IBM 内部使用了很多次之后,版本 3.1 在 2010 年被免版税。从那里每个人都可以实现和使用它。我们在 2012 年开始了解 MQTT 协议规范,并在同一年建立 EMQ 第一个版本,然后在 2013 年发布给公众。但不仅是协议规范被发布,各种客户端实现被贡献给新建立的 Paho 项目下面 Eclipse 基金会。这对协议绝对是一件大事,因为当它周围没有生态系统时,很少有机会广泛采用。
五、 OASIS 标准版和当前版本 在最初出版后的 3 年左右,宣布 MQTT 应在 OASIS 的旗帜下进行标准化, OASIS 是一个旨在提高标准的开放组织。 AMQP , SAML , DocBook 只是已经发布的标准中的几个。标准化过程大约需要 1 年, 2014 年 10 月 29 日 MQTT 正式被批准为 OASIS 标准。 MQTT 3.1.1 现在是协议的最新版本。从 3.1 版本到 3.1.1 版本的小版本的变化表明,在那里只有很少的变化对以前的版本。主要目标是尽快提供标准,并从那里改进 MQTT 。有关更改的详细信息,请参阅相关的博客文章,了解为什么值得升级到 3.1.1 。 我们一定会推荐使用 MQTT 3.1.1 。 2016 年 10 月 18 日, MQTT 5.0 草案发布,期待新的协议特性。
已经到了我们的 MQTT 入门多部分系列的第 1 部分的结束。我们希望你喜欢它,并学习了有关 MQTT 的新东西。如果您有任何反馈或问题,我们应该回答,同时涵盖未来的主题在下一篇文章,让我们知道在评论。顺便说一下,下周的主题将是对发布和订阅模式的介绍,以及解释 MQTT 和消息队列之间的区别。 如果您希望在下一部分发布后立即获得通知,请关注我们的简报,每周一次为您提供关于 MQTT 和 EMQ 的新内容。也可以收藏网站 http://www.iotn2n.com/