MQTT消息代理和客户端软件指南
由 Susannah Brodnitz / 产品, 用例
2022年9月11日
导航到
MQTT是一种机器对机器的通信协议。设备在特定主题下向代理发布消息,其他设备订阅这些主题以接收信息。它之所以受欢迎,是因为它不占用太多带宽,因此网络连接有限的物联网设备可以使用它。由于有代理,MQTT才能工作。每个发送和接收数据的设备都可以与可能数百万的其他设备通信,而只需连接到一个代理。开发者可以选择多个不同的代理,有些是开源的,有些是商业的。设备需要运行客户端软件才能连接到代理。本文概述了一些最流行的代理和客户端软件。
流行的代理
MQTT代理连接到客户端设备,验证连接,并临时存储数据。由于每个设备仅连接到代理,因此在项目规模扩大时,很容易将新设备添加到架构中。即使设备只有有限的带宽,每个设备也能访问来自无数其他设备的复杂数据,这使得MQTT成为许多物联网应用的理想协议。MQTT代理可以是管理的,这意味着您不需要在服务器上安装任何东西,或者自行托管,在这种情况下,您在自己的服务器上设置代理并按应用需求管理安全和扩展。以下是代理示例
-
Mosquitto是最受欢迎的MQTT代理之一。Eclipse基金会支持它,以及流行的Paho MQTT客户端库。《Celado》,Eclipse基金会的背后公司,还提供Pro Mosquitto选项,包括托管和高度可用性。
-
EMQX是另一个开源MQTT代理,它是云本地的,也是第一个支持MQTT第5版的代理。创建它的EMQ公司表示,EMQX代理集群可以处理1亿个订阅者。除了代理外,EMQ还创建了开源MQTT工具NanoMQ和Neuron,用于将物联网设备连接到云。
-
HiveMQ是另一种代理选项。该公司既有开源代理也有托管代理,后者特别适合扩展应用程序并能够与InfluxDB无缝集成。
-
AWS IoT Core是一个流行的商业托管代理。它也适合扩展,并且对于已经使用AWS的开发人员来说很方便。
-
Azure IoT Hub是另一个适合使用Azure的开发人员的良好托管选项。
流行的客户端软件
将消息发布到代理或订阅主题的设备被称为客户端。为了这样做,它们需要运行客户端软件,该软件使用登录信息连接到代理。一个流行的开源客户端工具是EMQ支持的MQTT X,它可以在MacOS、Windows和Linux操作系统上运行,并使用聊天框界面发送和接收消息。许多拥有MQTT代理的公司和组织也有客户端软件。《Mosquitto》拥有开源命令行界面以及C和C++客户端库。《HiveMQ MQTT客户端》是基于Java的,支持MQTT第5版和第3.1.1版。还有许多其他开源MQTT工具和客户端库可以在GitHub上找到。
InfluxDB如何融入
物联网传感器收集时间序列数据。数据量巨大,为了构建自动化,开发人员需要能够实时分析它。InfluxDB高效存储和查询这些数据,并以几种不同的方式融入MQTT数据管道。
-
您可以使用MQTT消费者监控Telegraf输入插件从代理收集数据并将其发送到您选择的输出。
-
InfluxDB还与HiveMQ合作,使用Sparkplug扩展进行分析和可视化。
您还可以使用MQTT生产者Telegraf输出插件,在InfluxDB中分析和查询数据后,将数据发送回代理。这一步非常强大,为物联网设备提供了复杂自动化所需的数据转换。开发者使用MQTT进行许多需要机器间通信的应用,从智能家居设备到工业制造,选择要使用的代理和客户端软件是使您的项目上线运行的第一步。