一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种基于水利物联网的水利数据采集方法与流程

2022-12-31 15:07:33 来源:中国专利 TAG:


1.本发明涉及水利数据采集,具体涉及一种基于水利物联网的水利数据采集方法。


背景技术:

2.水利采集终端是水利行业数据采集的基础设备,通过数据采集软件能够实现对水利采集终端采集数据的展示。
3.现有的水利数据采集方法存在以下不足之处:1)由于传统数据采集软件多采用c/s架构,局限了系统的可扩展性,使得数据采集软件仅能在部署系统的设备(且只能部署在一个设备上)上使用,查看采集数据及维护终端设备较为不便;
4.2)socket接收服务、数据解析服务、数据存储服务为一个整体服务,导致系统在遇到水利采集终端高并发大批量上报监测数据时遇到性能瓶颈;
5.3)将采集数据先存放至关系型数据库中,再从数据库中获取数据,导致无法实时上报刷新监测数据,需要到数据库中定时轮询。
6.上述不足使得水利数据的采集及时效性展示受到较大制约,无法满足水利行业的预测、预报对数据支撑的需求。


技术实现要素:

7.(一)解决的技术问题
8.针对现有技术所存在的上述缺点,本发明提供了一种基于水利物联网的水利数据采集方法,能够有效克服现有技术所存在的不便查看采集数据及维护终端设备,无法应对水利采集终端高并发大批量上报监测数据的情况,采集数据展示的时效性较差,数据解析效率较低的缺陷。
9.(二)技术方案
10.为实现以上目的,本发明通过以下技术方案予以实现:
11.一种基于水利物联网的水利数据采集方法,包括以下步骤:
12.s1、在数据接收服务器上搭建监听服务,同时在实时通讯服务器上搭建消息队列服务;
13.s2、对水利采集终端进行配置,水利采集终端向监听服务发送报文信息;
14.s3、数据接收服务器接收报文信息,并将报文信息推送至消息队列;
15.s4、数据解析服务从消息队列中获取报文信息,对报文信息进行数据解析,并将解析数据推送至解析消息队列;
16.s5、数据存储服务从解析消息队列中获取解析数据,并将解析数据存入数据库;
17.s6、平台从数据库中获取解析数据并展示;
18.其中,数据解析服务从消息队列中获取报文信息,对报文信息进行数据解析时,依据阿姆达尔加速比获取数据解析服务最优数量,并根据当前已启用数据解析服务进程数对数据解析服务进行动态调配。
19.优选地,s1中在数据接收服务器上搭建监听服务,同时在实时通讯服务器上搭建消息队列服务,包括:
20.在数据接收服务器上开通外网ip和端口a,将socket监听服务的监听ip、端口分别配置为外网ip、端口a,并打开监听软件;
21.同时在实时通讯服务器上搭建消息队列服务,创建iot_messag消息队列。
22.优选地,s2中对水利采集终端进行配置,水利采集终端向监听服务发送报文信息,包括:
23.将水利采集终端的ip、端口分别配置为外网ip、端口a;
24.水利采集终端将监测传感器产生的监测数据生成指定格式的报文信息,并将报文信息发送至socket监听服务。
25.优选地,s3中数据接收服务器接收报文信息,并将报文信息推送至消息队列,包括:
26.数据接收服务器接收报文信息,并将报文信息推送至iot_messag消息队列。
27.优选地,s4中数据解析服务从消息队列中获取报文信息,对报文信息进行数据解析,并将解析数据推送至解析消息队列,包括:
28.数据解析服务按照报文协议从iot_messag消息队列中获取报文信息,对报文信息进行数据解析,并将解析数据推送至iot_data解析消息队列。
29.优选地,所述数据解析服务从消息队列中获取报文信息,对报文信息进行数据解析时,依据阿姆达尔加速比获取数据解析服务最优数量,并根据当前已启用数据解析服务进程数对数据解析服务进行动态调配,包括:
30.采用下式计算阿姆达尔加速比τ:
[0031][0032][0033]
其中,t1为未使用动态扩展数据解析服务时完成数据解析任务消耗时间;t2为使用动态扩展数据解析服务时完成数据解析任务消耗时间;增强比例为t2在完成数据解析任务总执行时间中所占比例,增强比例永远小于1;增强加速比为在原条件下完成数据解析任务消耗时间与使用动态扩展功能后程序执行时间的比值;
[0034]
当阿姆达尔加速比τ不小于设定阈值时,则认为数据解析任务遇到瓶颈,影响数据解析效率,此时开始动态扩展数据解析服务;
[0035]
当阿姆达尔加速比τ小于设定阈值时,停止动态扩展数据解析服务。
[0036]
优选地,所述动态扩展数据解析服务时,动态扩展后的数据解析服务进程数小于服务器可承载最大进程数,并在数据解析任务完成后关闭动态扩展的数据解析服务;
[0037]
其中,服务器可承载最大进程数从服务器配置中获取。
[0038]
优选地,s5中数据存储服务从解析消息队列中获取解析数据,并将解析数据存入数据库,包括:
[0039]
数据存储服务从iot_data解析消息队列中获取解析数据,并按照指定存储逻辑存入数据库。
[0040]
优选地,s6中平台从数据库中获取解析数据并展示,包括:
[0041]
平台按照展示逻辑从指定的数据库中获取解析数据并展示。
[0042]
优选地,还包括平台下发控制指令至水利采集终端,对水利采集终端进行远程控制,具体包括:
[0043]
平台下发控制指令至iot_control指令消息队列,socket监听服务从iot_control指令消息队列中获取控制指令并存入缓存中;
[0044]
当水利采集终端与socket监听服务建立连接后,socket监听服务将控制指令下发至水利采集终端,对水利采集终端进行远程控制,并反馈执行结果。
[0045]
(三)有益效果
[0046]
与现有技术相比,本发明所提供的一种基于水利物联网的水利数据采集方法,具有以下有益效果:
[0047]
1)基于b/s与c/s的混合架构,使用“socket监听服务 消息中间件”进行数据通信的方法,使得水利采集终端与水利数据采集平台形成“多对多”的关系,即用户可以在具备访问互联网条件的移动设备上查看采集数据或维护终端设备;
[0048]
2)数据接收服务器将水利采集终端发送的报文信息推送至消息队列中缓存,同时将数据解析服务独立出来,在应对水利采集终端高并发大批量上报监测数据时可以水平扩展数据接收服务,从而有效解决高并发下的性能瓶颈问题;
[0049]
3)数据存储服务从解析消息队列中获取解析数据,并将解析数据存入数据库,同时水利数据采集平台使用websocket技术从数据库中实时获取解析数据,并进行时效性展示;
[0050]
4)使用“分布式采集 边缘计算”的模式,分级缓存架构实现数据的高效传输,并且极大减轻了数据中心的计算、缓存压力;
[0051]
5)得益于分布式与分级缓存的优势,使得数据接收服务器的数据在各数据接收服务器中都有备份,当出现极端情况导致数据丢失时,能够快速进行数据同步恢复;
[0052]
6)数据解析服务与数据接收服务相互独立,中间使用消息中间件对报文信息进行缓存,使得数据解析服务可以根据待解析报文总量进行动态调配,保证数据解析效率;
[0053]
7)依据阿姆达尔加速比获取数据解析服务最优数量,并根据当前已启用数据解析服务进程数对数据解析服务进行动态调配,能够对数据解析服务进行最佳优化。
附图说明
[0054]
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍。显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0055]
图1为本发明的流程示意图;
[0056]
图2为本发明中水利数据采集平台的架构图。
具体实施方式
[0057]
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例
中的附图,对本发明实施例中的技术方案进行清楚、完整地描述。显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0058]
一种基于水利物联网的水利数据采集方法,如图1所示,

在数据接收服务器上搭建监听服务,同时在实时通讯服务器上搭建消息队列服务,具体包括:
[0059]
在数据接收服务器上开通外网ip和端口a,将socket监听服务的监听ip、端口分别配置为外网ip、端口a,并打开监听软件;
[0060]
同时在实时通讯服务器上搭建消息队列服务,创建iot_messag消息队列。
[0061]

对水利采集终端进行配置,水利采集终端向监听服务发送报文信息,具体包括:
[0062]
将水利采集终端的ip、端口分别配置为外网ip、端口a;
[0063]
水利采集终端将监测传感器产生的监测数据生成指定格式的报文信息,并将报文信息发送至socket监听服务。
[0064]
数据采集接收服务处于数据采集的最前端,直接与水利采集终端通讯,支持指定协议进行通讯和传输报文信息,例如socket通讯、modbus通讯等。
[0065]
数据采集接收服务是整个平台的数据提供者,既要保证稳定高效的特性,同时又要实现轻量级部署,所以数据采集接收服务使用c#开发,使用.net6跨平台架构,发布为控制台程序,既可以注册成系统服务,也可以安装成客户端程序。
[0066]

数据接收服务器接收报文信息,并将报文信息推送至消息队列,具体包括:
[0067]
数据接收服务器接收报文信息,并将报文信息推送至iot_messag消息队列。
[0068]
数据中心服务是整个系统沟通的桥梁,承担着整个系统的实时通讯中介服务。数据中心使用消息中间件搭建,或者使用mqtt协议自行搭建,数据中心服务有生产者(producer)、消费者(consumer)、主题(topic)三个角色。
[0069]
生产者(producer)对应数据采集接收服务,采集到监测数据后发送至相应的主题(topic)。主题(topic)用于区分不同类别的数据,例如将大坝安全监测数据存储进topic_damsafe主题中,雨水情数据存储进topic_pptn主题中,这样消费者(consumer)将从topic_damsafe主题获取数据存储进大坝安全监测库表中,从topic_pptn主题获取数据存储进入雨水情库表中。
[0070]

数据解析服务从消息队列中获取报文信息,对报文信息进行数据解析,并将解析数据推送至解析消息队列,具体包括:
[0071]
数据解析服务按照报文协议从iot_messag消息队列中获取报文信息,对报文信息进行数据解析,并将解析数据推送至iot_data解析消息队列。
[0072]
数据解析服务从消息队列中获取报文信息,对报文信息进行数据解析时,依据阿姆达尔加速比获取数据解析服务最优数量,并根据当前已启用数据解析服务进程数对数据解析服务进行动态调配,具体包括:
[0073]
采用下式计算阿姆达尔加速比τ:
[0074][0075]
[0076]
其中,t1为未使用动态扩展数据解析服务时完成数据解析任务消耗时间;t2为使用动态扩展数据解析服务时完成数据解析任务消耗时间;增强比例为t2在完成数据解析任务总执行时间中所占比例,增强比例永远小于1;增强加速比为在原条件下完成数据解析任务消耗时间与使用动态扩展功能后程序执行时间的比值;
[0077]
当阿姆达尔加速比τ不小于设定阈值时,则认为数据解析任务遇到瓶颈,影响数据解析效率,此时开始动态扩展数据解析服务;
[0078]
当阿姆达尔加速比τ小于设定阈值时,停止动态扩展数据解析服务。
[0079]
动态扩展数据解析服务时,动态扩展后的数据解析服务进程数小于服务器可承载最大进程数,并在数据解析任务完成后关闭动态扩展的数据解析服务。其中,服务器可承载最大进程数从服务器配置中获取。
[0080]

数据存储服务从解析消息队列中获取解析数据,并将解析数据存入数据库,具体包括:
[0081]
数据存储服务从iot_data解析消息队列中获取解析数据,并按照指定存储逻辑存入数据库。
[0082]
数据存储服务为整个系统的最后一个环节,数据存储服务又分为数据解析模块和数据存储模块。数据解析模块负责将相应主题里的报文信息解析成明文,数据存储模块将明文存入数据库。数据存储服务的难点在于解决水利采集终端高并发大批量上报监测数据时的性能瓶颈问题。
[0083]
当阿姆达尔加速比τ不小于设定阈值时,开始动态扩展数据解析服务。例如,设定阈值为3,当当阿姆达尔加速比τ不小于3时,则认为数据解析任务遇到瓶颈,影响数据解析效率,此时开始动态扩展数据解析服务。
[0084]
出现数据堆积时,数据解析服务会动态扩展,开启新的进程进行数据解析操作,所以数据存储服务的特点也是稳定、高效和轻量级部署,并支持水平扩展。因此,数据存储服务也使用c#开发,使用.net6跨平台架构,发布为控制台程序,支持注册成系统服务和安装成客户端程序两种部署形式。
[0085]

平台从数据库中获取解析数据并展示,具体包括:
[0086]
平台按照展示逻辑从指定的数据库中获取解析数据并展示。
[0087]
本技术技术方案中,还包括平台下发控制指令至水利采集终端,对水利采集终端进行远程控制,具体包括:
[0088]
平台下发控制指令至iot_control指令消息队列,socket监听服务从iot_control指令消息队列中获取控制指令并存入缓存中;
[0089]
当水利采集终端与socket监听服务建立连接后,socket监听服务将控制指令下发至水利采集终端,对水利采集终端进行远程控制,并反馈执行结果。
[0090]
以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不会使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
再多了解一些

本文用于创业者技术爱好者查询,仅供学习研究,如用于商业用途,请联系技术所有人。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献