MQTT的用途是什么?

strongerHuang 2024-04-28 08:20

关注+星标公众,不错过精彩内容

作者 | 自由坦荡的湖泊AI

MQTT是做什么用的?


MQTT 是一种轻量级消息传递协议,通常用于物联网设备,这些设备旨在实现节能且消耗最少的带宽。

MQTT协议通过TCP/IP运行,基于无损通信的双向发布-订阅模型,确保MQTT消息高效无损地传递。

MQTT 是一种低开销协议,强烈考虑了带宽和 CPU 限制。它的设计能够在嵌入式环境中运行,从而可靠有效地提供通信途径。

从根本上说,MQTT是一种发布/订阅(pub/sub)协议。它允许客户端以发布者、订阅者或两者的身份连接到特定主题。您连接到处理所有消息传递的代理,其中每个客户端都由唯一的客户端 ID 标识。


生活中的 MQTT 示例和用例


MQTT通常用于物联网应用,用于连接传感器、执行器和家用电器等低功耗设备并与之通信,从而有效管理传输数据的有效载荷。

在农业中,MQTT 用于监测土壤湿度、温度和湿度等环境因素,使农民能够采取适当的行动。在工业自动化中,MQTT可以监控端到端的制造过程,确保一致的质量并识别生产链上的系统性问题。在交通领域,MQTT用于监控交通信号灯、停车计时器和公共交通的实时位置,同时注意生态系统和低带宽要求。


为什么使用 MQTT 而不是 HTTP?


HTTP 和 MQTT 是两种截然不同的通信协议,用于不同的目的。

HTTP 是一种请求/响应协议,它仅在响应客户端请求时传递数据。它专为大量数据而设计,通常用于传输网页、图像和视频。MQTT 是一种发布/订阅协议,支持异步消息传递,多个客户端能够订阅单个主题并接收来自一个或多个发布者的消息。MQTT 针对少量数据进行了优化,但在网络开销和设备功耗方面比 HTTP 更有效,使其成为需要低带宽和最低功耗的应用程序(例如由 AWS IoT 服务管理的应用程序)的合适选择。


MQTT是用什么语言编写的?


MQTT只是一个协议,可以用多种语言编写。但是,用于使用 MQTT 协议进行通信的 MQTT 客户端库支持多种语言,例如 C/C++、Java、Python 和 JavaScript,包括 Node.js、Ruby、Go、PHP 和 Swift。MQTT 客户端库通过 MQTT 代理进行通信,该代理也有多种编程语言版本。


MQTT是如何工作的?


MQTT 是一个非常灵活的协议,但只有两个基本实体:MQTT 客户端和 MQTT 代理。


MQTT客户端如何工作?


MQTT 客户端可以是实现 MQTT 协议的任何端点。在物联网的情况下,客户端是连接的设备,例如传感器、显示器或 Arduino 板,但 MQTT 不限于物联网,例如,客户端也可以是智能手机或笔记本电脑。

MQTT 客户端之间不直接通信。尽管如此,所有交互都是由一个称为 MQTT 代理的服务器组件“代理”的,该组件位于客户端之间并处理消息的路由。


什么是MQTT分组?


MQTT 中的所有通信都分为“主题”。MQTT 客户端可以向 Topic 发布消息,也可以订阅接收来自他人的消息。主题可以是任何字符串,旨在对共同感兴趣的主题进行分组,例如,传感器更新将发布到主题,群聊中的消息也是如此,具体取决于用例。


什么是MQTT代理?


代理负责管理哪些客户端订阅了哪些主题,接收在特定主题上发布的消息,并将该消息发送给订阅更新的任何客户端。当客户端和代理之间的连接丢失时,代理还负责缓存消息,并在重新建立连接时将其传递给客户端。


可以使用哪些 MQTT 代理?


MQTT 代理是 MQTT 协议的基础,可以被视为 MQTT 服务器。如前所述,经纪人位于所有客户之间并促进沟通。

存在许多 MQTT 代理,包括开源和专有的,任何基于 MQTT 的部署中最重要的架构决策之一就是如何托管代理。由于 MQTT 被设计为以非常大的规模运行,因此任何代理架构都需要相应地扩展。大多数企业部署将依赖于云托管的专有产品,因此它们没有任何基础设施问题,尽管也可以使用自托管选项。

在所有通信之间,代理可以保留消息并保留所有会话的安全记录;客户端彼此隔离,因此客户端的不安全感和漏洞可以被沙盒化,并且根据您的网络拓扑,代理可以减少整个网络上的流量,并允许更高效的路由。


如何使用 MQTT 和 Pub/Sub


任何支持 MQTT 协议的客户端都可以订阅和发布主题,但所有通信都通过代理进行,如下面的示例模型所示。


MQTT协议特性


虽然MQTT通常被认为是物联网解决方案,但它只是支撑许多知名物联网产品的协议。MQTT的许多特性使其特别适合设备之间的高效通信:


易于启动和运行

MQTT 已经存在了很长时间,并且有许多强大、可靠且可扩展的专有和开源解决方案。这些预先存在的 MQTT 组件可用于所有项目,从大型解决方案到激情项目,无需修改,也无论开发人员经验如何。


可靠性和配置

MQTT 具有服务质量 (QoS) 的概念,稍后将详细讨论,它将消息队列并缓存在 MQTT 代理上,并在重新建立连接时将它们传送到客户端。这尤其适用于部分连接的设备或具有间歇性连接的客户端,例如 IoT 设备。


客户端不必考虑解决方案体系结构

使用 MQTT,可以将消息发布到主题并在可用时接收它们。作为客户,不必担心建立或重新建立连接,也不必担心的收件人是否正在监听您的消息,它“只是工作”。


专为规模而设计


MQTT可以应对您的解决方案所需的任何规模,从初创公司到全球公司。最著名的是,Facebook Messenger使用MQTT进行通信。

MQTT 会话生命周期

MQTT 依赖于 TCP/IP 进行连接,因此遵循类似的生命周期


连接


MQTT 客户端启动与 MQTT 代理的连接。通常,这将通过标准 MQTT 端口(分别用于安全和不安全连接的 1883/883)


认证


MQTT 协议除了底层 TCP/IP 连接的 TLS 之外没有任何身份验证注意事项,这对于大多数用例来说已经足够了。


发布/订阅


连接后,客户端可以发布或订阅主题以发送和接收消息。


断开


断开连接可以由客户端或代理发起,并将导致 MQTT 会话在处理任何正在进行的请求后结束。


MQTT 服务质量 (QoS)

服务质量允许解决方案设计人员指定 MQTT 连接的可靠性,通常,连接越可靠,重试和消息保留的潜在内存开销就越大。


QoS 0


消息仅发送一次,客户端和代理不执行其他步骤来确认传递。这也被称为“即发即弃”。

这仅适用于客户端发送的消息。在代理处收到消息后,它们被视为 QoS 0


QoS 1


发送方和接收方握手以确保只收到消息的一个副本。这样可以确保传递并避免发送消息的多个副本。


QoS 2


邮件将多次重新发送,直到收件人确认收到邮件。这最适用于时间敏感的消息,但可能会导致收到重复的消息。

MQTT 用例和物联网

MQTT是一种轻量级且节能的协议,多年来一直被用于以这些为关键考虑因素的解决方案中。


物联网是 MQTT 非常适合的最流行的例子。物联网设备通常由电池供电,维护成本可能非常高,因此最好在两次电池更换之间持续很长时间。虽然在家庭环境中,不时更换电池并不困难,但在工业环境中,有成千上万的传感器,分布在广阔的区域,而且通常位于非常难以到达的位置,它们的维护很快就会变得昂贵。


MQTT 物联网用例包括火灾探测器、盗窃跟踪、位置监控、传感器、发动机状态等。MQTT 还具有非常低的数据开销,因此,在数据成本高昂或部署了数千台设备的环境中,MQTT 是理想的选择。


PubNub 和 MQTT 在物联网方面可以很好地协同工作。请参阅我们的 IoT 演示和 IoT 教程,详细了解 PubNub 和 MQTT 如何提供可靠、可扩展且高效的 IoT 解决方案。


MQTT在实时通信中也非常流行,最著名的例子是Facebook Messenger。


为什么Facebook会选择使用MQTT?


因为它不会耗尽手机的电池电量,不会使用过多的数据,在安全协议上运行,允许扩展,轻松促进群聊,并通过中央 MQTT 代理骨干基础设施分发所有数据。


------------ END ------------


●专栏《嵌入式工具
●专栏《嵌入式开发》
●专栏《Keil教程》
●嵌入式专栏精选教程

关注公众号回复“加群”按规则加入技术交流群,回复“1024”查看更多内容。

点击“阅读原文”查看更多分享。

strongerHuang 作者黄工,高级嵌入式软件工程师,分享嵌入式软硬件、物联网、单片机、开发工具、电子等内容。
评论 (0)
  • 文/Leon编辑/cc孙聪颖‍2023年,厨电行业在相对平稳的市场环境中迎来温和复苏,看似为行业增长积蓄势能。带着对市场向好的预期,2024 年初,老板电器副董事长兼总经理任富佳为企业定下双位数增长目标。然而现实与预期相悖,过去一年,这家老牌厨电企业不仅未能达成业绩目标,曾提出的“三年再造一个老板电器”愿景,也因市场下行压力面临落空风险。作为“企二代”管理者,任富佳在掌舵企业穿越市场周期的过程中,正面临着前所未有的挑战。4月29日,老板电器(002508.SZ)发布了2024年年度报告及2025
    华尔街科技眼 2025-04-30 12:40 274浏览
  • 浪潮之上:智能时代的觉醒    近日参加了一场课题的答辩,这是医疗人工智能揭榜挂帅的国家项目的地区考场,参与者众多,围绕着医疗健康的主题,八仙过海各显神通,百花齐放。   中国大地正在发生着激动人心的场景:深圳前海深港人工智能算力中心高速运转的液冷服务器,武汉马路上自动驾驶出租车穿行的智慧道路,机器人参与北京的马拉松竞赛。从中央到地方,人工智能相关政策和消息如雨后春笋般不断出台,数字中国的建设图景正在智能浪潮中徐徐展开,战略布局如同围棋
    广州铁金刚 2025-04-30 15:24 265浏览
  • 在智能硬件设备趋向微型化的背景下,语音芯片方案厂商针对小体积设备开发了多款超小型语音芯片方案,其中WTV系列和WT2003H系列凭借其QFN封装设计、高性能与高集成度,成为微型设备语音方案的理想选择。以下从封装特性、功能优势及典型应用场景三个方面进行详细介绍。一、超小体积封装:QFN技术的核心优势WTV系列与WT2003H系列均提供QFN封装(如QFN32,尺寸为4×4mm),这种封装形式具有以下特点:体积紧凑:QFN封装通过减少引脚间距和优化内部结构,显著缩小芯片体积,适用于智能门铃、穿戴设备
    广州唯创电子 2025-04-30 09:02 324浏览
  • 你是不是也有在公共场合被偷看手机或笔电的经验呢?科技时代下,不少现代人的各式机密数据都在手机、平板或是笔电等可携式的3C产品上处理,若是经常性地需要在公共场合使用,不管是工作上的机密文件,或是重要的个人信息等,民众都有防窃防盗意识,为了避免他人窥探内容,都会选择使用「防窥保护贴片」,以防止数据外泄。现今市面上「防窥保护贴」、「防窥片」、「屏幕防窥膜」等产品就是这种目的下产物 (以下简称防窥片)!防窥片功能与常见问题解析首先,防窥片最主要的功能就是用来防止他人窥视屏幕上的隐私信息,它是利用百叶窗的
    百佳泰测试实验室 2025-04-30 13:28 495浏览
  • 在CAN总线分析软件领域,当CANoe不再是唯一选择时,虹科PCAN-Explorer 6软件成为了一个有竞争力的解决方案。在现代工业控制和汽车领域,CAN总线分析软件的重要性不言而喻。随着技术的进步和市场需求的多样化,单一的解决方案已无法满足所有用户的需求。正是在这样的背景下,虹科PCAN-Explorer 6软件以其独特的模块化设计和灵活的功能扩展,为CAN总线分析领域带来了新的选择和可能性。本文将深入探讨虹科PCAN-Explorer 6软件如何以其创新的模块化插件策略,提供定制化的功能选
    虹科汽车智能互联 2025-04-28 16:00 230浏览
  • 随着电子元器件的快速发展,导致各种常见的贴片电阻元器件也越来越小,给我们分辨也就变得越来越难,下面就由smt贴片加工厂_安徽英特丽就来告诉大家如何分辨的SMT贴片元器件。先来看看贴片电感和贴片电容的区分:(1)看颜色(黑色)——一般黑色都是贴片电感。贴片电容只有勇于精密设备中的贴片钽电容才是黑色的,其他普通贴片电容基本都不是黑色的。(2)看型号标码——贴片电感以L开头,贴片电容以C开头。从外形是圆形初步判断应为电感,测量两端电阻为零点几欧,则为电感。(3)检测——贴片电感一般阻值小,更没有“充放
    贴片加工小安 2025-04-29 14:59 305浏览
  • 网约车,真的“饱和”了?近日,网约车市场的 “饱和” 话题再度引发热议。多地陆续发布网约车风险预警,提醒从业者谨慎入局,这背后究竟隐藏着怎样的市场现状呢?从数据来看,网约车市场的“过剩”现象已愈发明显。以东莞为例,截至2024年12月底,全市网约车数量超过5.77万辆,考取网约车驾驶员证的人数更是超过13.48万人。随着司机数量的不断攀升,订单量却未能同步增长,导致单车日均接单量和营收双双下降。2024年下半年,东莞网约出租车单车日均订单量约10.5单,而单车日均营收也不容乐
    用户1742991715177 2025-04-29 18:28 275浏览
  • 文/郭楚妤编辑/cc孙聪颖‍越来越多的企业开始蚕食动力电池市场,行业“去宁王化”态势逐渐明显。随着这种趋势的加强,打开新的市场对于宁德时代而言至关重要。“我们不希望被定义为电池的制造者,而是希望把自己称作新能源产业的开拓者。”4月21日,在宁德时代举行的“超级科技日”发布会上,宁德时代掌门人曾毓群如是说。随着宁德时代核心新品骁遥双核电池的发布,其搭载的“电电增程”技术也走进业界视野。除此之外,经过近3年试水,宁德时代在换电业务上重资加码。曾毓群认为换电是一个重资产、高投入、长周期的产业,涉及的利
    华尔街科技眼 2025-04-28 21:55 200浏览
  • 一、gao效冷却与控温机制‌1、‌冷媒流动设计‌采用低压液氮(或液氦)通过毛细管路导入蒸发器,蒸汽喷射至样品腔实现快速冷却,冷却效率高(室温至80K约20分钟,至4.2K约30分钟)。通过控温仪动态调节蒸发器加热功率,结合温度传感器(如PT100铂电阻或Cernox磁场不敏感传感器),实现±0.01K的高精度温度稳定性。2、‌宽温区覆盖与扩展性‌标准温区为80K-325K,通过降压选件可将下限延伸至65K(液氮模式)或4K(液氦模式)。可选配475K高温模块,满足材料在ji端温度下的性能测试需求
    锦正茂科技 2025-04-30 13:08 382浏览
  • 贞光科技代理品牌紫光国芯的车规级LPDDR4内存正成为智能驾驶舱的核心选择。在汽车电子国产化浪潮中,其产品以宽温域稳定工作能力、优异电磁兼容性和超长使用寿命赢得市场认可。紫光国芯不仅确保供应链安全可控,还提供专业本地技术支持。面向未来,紫光国芯正研发LPDDR5车规级产品,将以更高带宽、更低功耗支持汽车智能化发展。随着智能网联汽车的迅猛发展,智能驾驶舱作为人机交互的核心载体,对处理器和存储器的性能与可靠性提出了更高要求。在汽车电子国产化浪潮中,贞光科技代理品牌紫光国芯的车规级LPDDR4内存凭借
    贞光科技 2025-04-28 16:52 325浏览
我要评论
0
0
点击右上角,分享到朋友圈 我知道啦
请使用浏览器分享功能 我知道啦