3、 有一工业物联网平台,通过MQTT订阅来着设备层的数据,每秒数据量可达上万,请设计一套软件框架实现对该数据进行计算处理。计算要求如下:1、有n台设备;2、每个设备有n个字段;3、计算同一设备每个字段数据前后数据差值;4、数据相同则不进行计算
时间: 2024-02-09 20:07:23 浏览: 129
基于MQTT开发数据采集,支持N个订阅N个发布,支持上万连接同时订阅和发布信息
4星 · 用户满意度95%
。首先,我们需要一个数据收集模块来将来自多台设备的数据通过MQTT协议传输到平台。这个模块可以由一组MQTT客户端组成,每个客户端负责订阅不同设备或主题发布的数据。
接下来,我们需要一个数据处理模块来对接收到的数据进行计算处理。首先,我们需要按设备ID将数据进行分类,然后对每个设备的每个字段进行处理计算。计算前后数据差值可以通过维护一个缓存区来实现,每次新收到一条数据,我们就从缓存中取出上一条数据,然后进行差值计算并将新数据加入缓存。如果某个字段的数据相同,则不进行计算,直接将新数据加入缓存。
最后,我们需要一个数据存储模块来将处理后的数据存储到数据库中,以便后续使用。
整个框架的结构如下图所示:
数据收集模块(多个MQTT客户端) -> 数据处理模块(分类处理计算)-> 数据存储模块(存储到数据库)
这个框架可以使用多线程技术来提高处理效率,每个线程处理一部分设备数据。同时,我们可以使用缓存区来减少对数据库的读写操作,以提高性能。
希望这个答案能够对你有所帮助。如果你有其他问题,欢迎继续提问。
阅读全文