实现设备上报消息分类处理

1. 引言

当设备连接到云端的时候,设备就可以上传自己的状态,根据具体的义务场景设备上报的消息可以分成多类,比如:

  • 设备状态上报:包括设备的在线信息、电量、温度、湿度等;
  • 告警信息上报:包括设备故障、异常、预警等;
  • 设备采集信息上报:传感器采集的温度、湿度、气压等数据。
实现设备上报消息分类处理
消息上报示意图

为了更好地管理和监控设备的状态,提高系统的可靠性和稳定性,云端常需要对设备上报的消息类型进行区分和分类。

那是如何实现消息分类的呢?

2. 消息分类处理

在设备和云端通信采用的协议是MQTT协议,其可以支持发布/订阅模式,因此在MQTT协议中的TOPIC可以用标签(tag)进行更细粒度的消息过滤。

其实现步骤:

  • 在MQ中创建一个主题,例如:mqtt_topic,在发布消息时,指定标签,例如:mqtt_tag;
 Message msg = new Message("mqtt_topic""mqtt_tag""Hello RocketMQ MQTT".getBytes());
 producer.send(msg);
  • 在消费消息时,通过指定标签来订阅消息,例如:mqtt_tag;
  consumer.subscribe("mqtt_topic""mqtt_tag");

这样,消费者就只会接收到主题为mqtt_topic,标签为mqtt_tag的消息。

消息上报的示意图如下:

实现设备上报消息分类处理
消费分类处理示意图

如图所示,包含三个模块,设备端上报信息,MQTT Broker中转消息,云端服务消费消息。设备端上报消息的时候除了指定topic外,还指定了tag,这就实现设备端的消息区分;云端的服务根据自己业务服务需求,去消费指定的tag消息,也就实现了消息的分类处理。

3. 小结

如上简介了一个MQ中对消费更加细粒度区分的方法,需要从设备端指定tag进行区分,然后消费端才可以根据tag获取该类的消息。


原文始发于微信公众号(CodeJames):实现设备上报消息分类处理

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/148181.html

(0)
小半的头像小半

相关推荐

发表回复

登录后才能评论
极客之音——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!