合作机构:阿里云 / 腾讯云 / 亚马逊云 / DreamHost / NameSilo / INWX / GODADDY / 百度统计
MQTT(Message Queuing Telemetry Transport,消息队列遥测传输协议)是一种基于发布/订阅(publish/subscribe)模式的“轻量级”通讯协议,该协议构建于 TCP/IP 协议上,由 IBM 在1999年发布,现已是用于物联网 (IoT) 的 OASIS 标准消息传递协议。MQTT 最大优点在于,用极少的代码和有限的带宽,为连接远程设备提供实时可靠的消息服务。
MQTT 协议是轻量、简单、开放和易于实现的,这些特点使其在物联网、小型设备、移动应用等方面有较广泛的应用。MQTT 协议运行在传输控制协议/互联网协议 (TCP/IP) 堆栈之上,提供有序、无损、双向连接。MQTT 协议在处理网络连接不稳定、带宽有限的环境中有较强的适应性,常被用于智能家居、医疗设备、卫星通信等场景中。
MQTT 协议具有以下特点:
MQTT Broker 是消息中间件,它负责接收发布者发送的消息,并根据订阅者订阅的主题将消息转发给订阅者。它管理客户端连接、处理订阅和退订,并保证按照指定的服务质量(QoS)级别发送消息。MQTT 是一种开放的轻量级机器对机器协议,专为物联网交互设计。在 MQTT 网络中,MQTT Broker 是协调所有 MQTT 代理之间的交互的服务器。MQTT 客户端可以是发布者,也可以是订阅者,或者两者都是。MQTT 架构可以是集中式的,也可以是分布式的,以适应不同的应用场景。
Bridge在MQTT协议中是指桥接,是指将两个MQTT代理(Broker)连接起来,使得它们可以相互通信,以实现消息的互通。
当两个Broker被桥接后,它们可以作为接入节点提供服务,对外可配置一个虚拟IP或域名来访问。这种桥接方式可以实现负载均衡和故障转移,提高系统的可用性和稳定性。
在配置Bridge时,需要指定消息同步的Topic,而不是同步所有Topic来规避流量放大的问题,更推荐通过垂直切分的方案进行分流。
MQTT协议中的Bridge主要有以下特点:
MQTT Client 是指运行MQTT库并通过网络连接到MQTT broker的设备,这些设备可以是微控制器,也可以是成熟的服务器,它实现了MQTT协议的客户端。在MQTT协议中,一个典型的客户端会有以下主要操作:发布消息到某个topic、从某个topic订阅消息、处理接收到的消息、对接收到的QoS 1或QoS 2消息进行确认。MQTT协议的客户端实现非常简单直接。
RSMB(Very Small Message Broker)是IBM开发的一个轻量级消息代理,主要用于MQTT协议的C/S(客户端/服务器)架构中的消息传输服务。之后,Eclipse Foundation将RSMB接纳为其下的一个项目,并将其命名为Eclipse Mosquitto。
Eclipse Mosquitto是一个开源的消息代理,它实现了MQTT协议的版本3.1和3.1.1,被设计用于从低功耗的单板计算机到完整的服务器等各种设备。MQTT协议使用发布/订阅模型进行消息传递,这种模型被证明在许多场景下,特别是物联网(IoT)应用中,都非常有效。
Last Will and Testament (LWT) 是 MQTT 协议中用于处理非正常断开连接时的一种机制。
LWT 可以被理解为在连接到 MQTT Broker 时提到的遗嘱。当 Broker 检测到 Client 非正常地断开连接的时候,就会向遗嘱主题里面发布一条消息。遗嘱相关的设置是在建立连接的时候,在 CONNECT 数据包里面的 Variable header (可变头与) Payload (有效载荷) 中指定的。
机器对机器Machine to machine (M2M)是指数据从一台终端传送到另一台终端,也就是机器与机器的对话。M2M应用系统构成有智能化机器、M2M硬件、通信网络、中间件。M2M应用领域有家庭应用领域、工业应用领域、零售和支付领域、物流运输行业、医疗行业等。
物联网(Internet of Things,IoT)是指通过各种信息传感器、射频识别技术、全球定位系统、红外感应器、激光扫描器等各种装置与技术,实时采集任何需要监控、连接、互动的物体或过程,采集其声、光、热、电、力学、化学、生物、位置等各种需要的信息,通过各类可能的网络接入,实现物与物、物与人的泛在连接,实现对物品和过程的智能化感知、识别和管理。物联网是一个基于互联网、传统电信网等的信息承载体,它让所有能够被独立寻址的普通物理对象形成互联互通的网络。
MQTT(Message Queuing Telemetry Transport,消息队列遥测传输协议)中设计了保证消息稳定传输的机制,包括消息应答、存储和重传。在此机制下,提供了三种不同层次的服务质量(Quality of Service,QoS)等级:
不同的QoS等级为MQTT的应用提供了不同的选择和灵活性,可以根据实际需求和网络环境来选择最合适的QoS等级。需要注意的是,QoS是Sender和Receiver之间的协议,而不是Publisher和Subscriber之间的协议。
MQTT 是 IoT 连接的 OASIS 标准。它是一种发布/订阅、极其简单且轻量级的消息传递协议,专为受限设备和低带宽、高延迟或不可靠的网络而设计。设计原则是最大限度地减少网络带宽和设备资源需求,同时尝试确保可靠性和一定程度的交付保证。这些原则也使该协议成为连接设备的“物联网”世界以及带宽和电池电量非常宝贵的移动应用的理想选择。
MQTT 由 IBM 的 Andy Stanley-Clark 博士和 Arcom(现为 Eurotech)的 Arlen Nipper 于 1999 年发明。
自 1999 年以来,MQTT 已在各个行业广泛实施。
v5.0 和 v3.1.1 现已成为 OASIS 标准(v3.1.1 也已获得 ISO 批准)。
是的。TCP/IP 端口 1883 已由 IANA 保留用于 MQTT。TCP/IP 端口 8883 也已注册,用于通过 SSL 使用 MQTT。
在协议 V3.1 中,您可以使用 MQTT 数据包传递用户名和密码。网络上的加密可以使用 SSL 进行处理,独立于 MQTT 协议本身(值得注意的是,SSL 不是最轻的协议,并且确实会增加大量的网络开销)。可以通过应用程序加密其发送和接收的数据来增加额外的安全性,但这不是协议内置的东西,以便保持简单和轻量级。
TOP