IoT应用端消息处理的两种策略---基于MQTT通道

简介: 在物联网领域多年的开发和架构经历,使我接触到了不同领域的物联网解决方案,比如智能家居中对空调,热水器,洗衣机,室灯等家用设备的单品控制,比如智能办公中通过人脸识别对闸机和门禁进行开关控制,再比如智能建筑中的对高空吊栏危险系数的实时预警等,均反映了物联网正在以前所未有的速度不断的影响着我们的衣食住行,不断的改变人们的生活,使我们的生活更高效,更便捷,更安全。

在物联网领域多年的开发和架构经历,使我接触到了不同领域的物联网解决方案,比如智能家居中对空调,热水器,洗衣机,室灯等家用设备的单品控制,比如智能办公中通过人脸识别对闸机和门禁进行开关控制,再比如智能建筑中的对高空吊栏危险系数的实时预警等,均反映了物联网正在以前所未有的速度不断的影响着我们的衣食住行,不断的改变人们的生活,使我们的生活更高效,更便捷,更安全。

物联网通讯方式经过多年的迭代,目前以mqtt的通讯协议最为流行。这里我们以mqtt的协议来讲解应用端对消息的处理,应用端mqtt的消息处理方式大致可以分为两类:客户端消息处理,应用服务端消息处理。

一.客户端消息处理

首先我们看一下客户端消息处理的框架,见下图:

image.png

客户端消息处理的方式主要的适用场景是在设备端和客户端的信息直接交互,有一定的私密性。比如智能家居场景,用户通过手机控制自己家里的设备。 下面我们来看一下方案实现。

1.1私有解决方案搭建

MqttBroker可以采用mosquitto作为mqtt的broker,mosquitto一款实现了消息推送协议 MQTT的开源消息代理软件,提供轻量级的,支持可发布/可订阅的的消息推送模式,使设备对设备之间的短消息通信变得简单。链接地址:https://mosquitto.org

MqttClient可采用流行的eclipse paho,eclipse paho旨在提供可伸缩的开放和标准的 Machine-to-Machine (M2M) 以及物联网消息协议的客户端开源实现。Paho 初始提供 MQTT 发布/订阅实现,且多语言支持,主要支持的语言有java,python,javascript,GoLang,C,C++,C#,android service,Embedded C/C++。链接地址:http://www.eclipse.org/paho/downloads.php

1.2采用阿里云物联网平台

MqttBorker由阿里云提供,阿里云提供海量设备接入,通过物联网平台的配置就可以实现通道功能。另外阿里云提供丰富的MqttClient的SDK,具体参照https://helpcdn.aliyun.com/document_detail/42648.html?spm=a2c4g.11186623.6.643.1eb83f69Cad1OX

二.应用服务端消息处理

我们看一下应用服务端消息处理的框架,见下图:

image.png

应用服务端消息处理的方式主要的适用场景是设备的上报信息需要业务服务节点进行统一处理后再对设备发起指令控制。比如智慧办公的门禁场景,门禁摄像头采集到用户脸部信息,通过mqtt broker发送到服务器后,有消息中间件转发给各个业务节点(这里是人脸识别服务节点),识别成功后将开关的控制指令通过mqtt broker发送给设备进行门禁控制。 下面我们来看一下方案实现。

2.1私有解决方案搭建

MqttBroker和MqttClient可以参照上例客户端消息处理的mosquitto和eclipse paho,消息中间件可以采用rabbitmq来进行消息转发。链接地址:http://www.rabbitmq.com

2.2采用阿里云物联网平台

MqttBroker和MqttClient可以参照上例客户端消息处理的说明,另外消息转发可以采用阿里云MNS服务实现消息转发拉取功能。 以上是IoT应用端消息处理的两种策略的分享,希望对大家有用。

原文作者:辰云
点击查看原文

相关实践学习
快速体验阿里云云消息队列RocketMQ版
本实验将带您快速体验使用云消息队列RocketMQ版Serverless系列实例进行获取接入点、创建Topic、创建订阅组、收发消息、查看消息轨迹和仪表盘。
消息队列 MNS 入门课程
1、消息队列MNS简介 本节课介绍消息队列的MNS的基础概念 2、消息队列MNS特性 本节课介绍消息队列的MNS的主要特性 3、MNS的最佳实践及场景应用 本节课介绍消息队列的MNS的最佳实践及场景应用案例 4、手把手系列:消息队列MNS实操讲 本节课介绍消息队列的MNS的实际操作演示 5、动手实验:基于MNS,0基础轻松构建 Web Client 本节课带您一起基于MNS,0基础轻松构建 Web Client
相关文章
|
2月前
|
传感器 运维 数据可视化
AR眼镜巡检系统在工业互联网的应用:AR+IoT
AR与IoT融合构建虚实闭环,IoT采集实时数据,AR直观呈现并交互,形成感知-分析-决策-行动高效闭环,提升运维效率。
|
4月前
|
消息中间件 存储 Kafka
一文带你从入门到实战全面掌握RocketMQ核心概念、架构部署、实践应用和高级特性
本文详细介绍了分布式消息中间件RocketMQ的核心概念、部署方式及使用方法。RocketMQ由阿里研发并开源,具有高性能、高可靠性和分布式特性,广泛应用于金融、互联网等领域。文章从环境搭建到消息类型的实战(普通消息、延迟消息、顺序消息和事务消息)进行了全面解析,并对比了三种消费者类型(PushConsumer、SimpleConsumer和PullConsumer)的特点与适用场景。最后总结了使用RocketMQ时的关键注意事项,如Topic和Tag的设计、监控告警的重要性以及性能与可靠性的平衡。通过学习本文,读者可掌握RocketMQ的使用精髓并灵活应用于实际项目中。
2379 9
 一文带你从入门到实战全面掌握RocketMQ核心概念、架构部署、实践应用和高级特性
|
5月前
|
物联网
(手把手)在华为云、阿里云搭建自己的物联网MQTT消息服务器,免费IOT平台
本文介绍如何在阿里云搭建自己的物联网MQTT消息服务器,并使用 “MQTT客户端调试工具”模拟MQTT设备,接入平台进行消息收发。
1932 42
|
7月前
|
消息中间件 人工智能 自然语言处理
基于 RocketMQ 事件驱动架构的 AI 应用实践
基于 RocketMQ 事件驱动架构的 AI 应用实践
201 2
|
7月前
|
消息中间件 存储 前端开发
MQ有什么应用场景
MQ有什么应用场景
|
11月前
|
安全 物联网 物联网安全
揭秘区块链技术在物联网(IoT)安全中的革新应用
揭秘区块链技术在物联网(IoT)安全中的革新应用
|
10月前
|
消息中间件 存储 监控
说说MQ在你项目中的应用(一)
本文总结了消息队列(MQ)在项目中的应用,主要围绕异步处理、系统解耦和流量削峰三大功能展开。通过分析短信通知和业务日志两个典型场景,介绍了MQ的实现方式及其优势。短信通知中,MQ用于异步发送短信并处理状态更新;业务日志中,Kafka作为高吞吐量的消息系统,负责收集和传输系统及用户行为日志,确保数据的可靠性和高效处理。MQ不仅提高了系统的灵活性和响应速度,还提供了重试机制和状态追踪等功能,保障了业务的稳定运行。
292 7
|
11月前
|
存储 安全 物联网
C# 在物联网 (IoT) 应用中的应用
本文介绍了C#在物联网(IoT)应用中的应用,涵盖基础概念、优势、常见问题及其解决方法。重点讨论了网络通信、数据处理和安全问题,并提供了相应的代码示例,旨在帮助开发者更好地利用C#进行IoT开发。
459 3
|
11月前
|
消息中间件 存储 Apache
探索 RocketMQ:企业级消息中间件的选择与应用
RocketMQ 是一个高性能、高可靠、可扩展的分布式消息中间件,它是由阿里巴巴开发并贡献给 Apache 软件基金会的一个开源项目。RocketMQ 主要用于处理大规模、高吞吐量、低延迟的消息传递,它是一个轻量级的、功能强大的消息队列系统,广泛应用于金融、电商、日志系统、数据分析等领域。
1006 0
探索 RocketMQ:企业级消息中间件的选择与应用
|
10月前
|
消息中间件 存储 中间件
说说MQ在你项目中的应用(二)商品支付
本文总结了消息队列(MQ)在支付订单业务中的应用,重点分析了RabbitMQ的优势。通过异步处理、系统解耦和流量削峰等功能,RabbitMQ确保了支付流程的高效与稳定。具体场景包括用户下单、支付请求、商品生产和物流配送等环节。相比Kafka,RabbitMQ在低吞吐量、高实时性需求下表现更优,提供了更低延迟和更高的可靠性。
301 0