RocketMQ 之 IoT 消息解析:物联网需要什么样的消息技术?

💡 原文中文,约5100字,阅读约需13分钟。
📝

内容提要

本文介绍了RocketMQ 5.0在物联网场景中的作用和需求,采用MQTT协议实现了设备之间和设备与服务端之间的发布订阅能力。RocketMQ 5.0的架构提供了高性能的存储和实时推送能力,并解决了关键技术问题。

🔎

延伸解读

物联网消息与经典消息的本质差异

文章指出,经典消息场景中客户端与服务端通常部署在同一内网,网络稳定、客户端数量有限、订阅比低;而物联网场景中设备资源受限、常通过公网连接且网络不稳定,设备数量可达亿级,单条消息可能被百万级设备订阅。这种差异决定了物联网消息技术不能简单沿用经典方案,必须在协议、存储和推送模型上重新设计。

读放大为主、写放大为辅的存储权衡

在发布订阅模型中,读放大指消息只写一份、消费者各自读取;写放大指为每个消费者单独分发消息。物联网场景下消息订阅比极高,若采用写放大将导致存储成本剧增。但MQTT支持通配符订阅,无法仅靠读放大覆盖,因此RocketMQ对精确订阅采用读放大,对通配符订阅额外写入通配符队列,形成混合存储模型。

端云一体化存储的实际意义

RocketMQ 5.0的端云一体化存储模型让来自服务端(RMQ/AMQP)和设备端(MQTT)的消息只写入一份Commitlog,再按不同场景分发队列索引。这意味着同一份消息既能被物联网设备消费,也能被云端应用消费,避免了多套消息系统并存带来的资源与学习成本,同时便于流计算引擎直接对IoT数据做实时分析。

推拉结合模型与订阅匹配的取舍

面对海量连接和订阅关系,RocketMQ在MQTT场景放弃经典长轮询,改用推拉结合:notify模块感知新消息后生成事件推给Proxy,Proxy匹配本地订阅后触发pull读取并推送设备。订阅匹配默认采用事件广播,虽然看似扩展性差,但事件仅含Topic名称且可攒批,性能可接受;集中存储订阅关系虽精准但需保证实时一致性,对链路延迟有影响。

❓

Q&A

RocketMQ 5.0在物联网中有什么作用?

RocketMQ 5.0在物联网中提供了设备间和设备与服务端之间的发布订阅能力,支持高性能存储和实时推送。

物联网消息技术与经典消息技术有什么区别?

物联网消息技术支持设备间通信和复杂网络环境,而经典消息技术主要为服务端系统提供发布订阅能力。

RocketMQ - MQTT的主要技术特点是什么?

RocketMQ - MQTT采用标准MQTT协议,存算分离架构,并实现端云一体化存储。

物联网设备的数据处理有什么挑战?

物联网设备产生大量实时数据流,需要高效的流处理能力以应对设备维护和预警等场景。

RocketMQ如何优化消息存储模型以适应物联网?

RocketMQ采用读放大为主、写放大为辅的存储策略,以降低存储成本并提高性能。

边缘计算在物联网中的重要性是什么?

边缘计算可以在离数据源更近的地方处理数据,降低延迟并减少将所有数据传输到云端的成本。

🏷️

标签

➡️

继续阅读