本发明涉及工业物联网,尤其涉及一种用于工业物联网的高可靠性的数据采集方法。
背景技术:
1、企业内部工业网络或机房间的网络连接经常会出现中断,如车间内部断电,部分区域,网络信号波动等。上述情况的发生,可能会造成数据传输失败,分布式服务实例间失联,业务逻辑程序处理异常等问题,给工业物联网数据采集的可靠性带来了挑战,影响企业基于数据的经营决策和分析。
2、为应对上述问题,当前普遍采用网络异常监测日志和数据人工补录的方式,在网络异常发生后,使数据能够尽可能的连续。但是,数据补录的准确性和时效性因人而异,若数据量很大,补录操作几乎无法完成。
3、随着企业数字化意识的增强,工业物联网数据采集量级也在持续增加,日均数据在千万级的比比皆是,如果还采用现有的异常日志监测、人工补录和备用系统的方法,会很难保证数据的实时性、连续性和可靠性,从而影响企业的经营决策。
技术实现思路
1、本发明的目的在于提供一种用于工业物联网的高可靠性的数据采集方法,从而解决现有技术中存在的前述问题。
2、为了实现上述目的,本发明采用的技术方案如下:
3、一种用于工业物联网的高可靠性的数据采集方法,面对下游系统,通过监测数据转发行为,对异常数据进行本地存储,当通讯正常后,再将存储的数据补发至下游系统;面对数据感知层面,通过建立多个服务实例,增加心跳机制和基于实例数量的任务动态分配算法,使实例中断时,能够重新分配任务,确保数据采集功能持续正常运行。
4、优选的,面对下游系统进行数据补发具体包括如下步骤,
5、a1、对数据转发程序进行异常捕捉,当捕捉到数据异常时,即认为数据发送失败;
6、a2、设置一个统一的网络状态标记,并采用心跳的方式,每n秒请求一次下游系统;当数据出现异常时,先将网络状态标记设定为异常,数据转发程序转发数据之前先进行网络状态标记的状态判断,发现网络状态标记为异常时,会将异常数据写入本地数据库;当监测到下游系统的网络通讯正常时,再将网络状态标记设定为正常,再将存储在本地数据库中的异常数据发给下游系统;
7、a3、调度程序每m秒读取一次本地数据库,当发现有数据且网路正常时,就按批进行数据转发,每批查询x条,记录转发的数据id,并在该数据转发成功后将其从本地数据库中删除。
8、优选的,本地数据库采用单个文件进行存储,并采用插入方式写入数据;该数据库存储设计基于工业物联网的应用场景,使用路径、属性、采集值和时间戳这些字段;所述路径代表的是一个唯一标记;所述属性对应的是采集的字段名;采集值是实际读取的数值,时间戳是数据存储的时间。
9、优选的,限制转发行为的线程占用时间不能超过k秒,一旦超过该时间,则认为数据转发异常。
10、优选的,面向数据感知层面的任务分配具体包括如下步骤,
11、b1、每种协议单独构建一套采集系统,采集系统采用分布式部署方案,每种协议采用统一的句柄,用于标识服务实例,当服务启动时,所有的协议服务统一到注册中心进行服务实例注册,注册中心能够获取到服务实例所在的服务器ip和进程端口号,能够对服务实例进行区分,注册完成后,每个实例都会决策自己的采集任务;
12、b2、根据统一的句柄,从注册中心获取所有协议部署的实例列表,并根据服务器ip和进程端口号,获取当前实例在实例列表中的位置;所有的协议采集项点统一配置在数据库中,并给每个项点分配一个唯一数字标记;并基于任务动态分配算法,将采集项点分配到任务列表中,直到遍历完所有的实例列表;
13、b3、系统中的心跳每y秒同步一次注册中心的实例列表,当某个实例出现异常,所有协议下的实例会重新分配任务。
14、优选的,所述任务动态分配算法具体为,
15、将当前实例在列表中的位置记为i,实例列表记为j;项点分配的唯一数字标识记为t;
16、利用实例对所有的采集项点进行t对j取模操作,并将结果与i进行比对,若两者相同,则将采集项点分配到任务列表中,直到遍历完所有的实例列表。
17、本发明的有益效果是:1、本发明方法通过在数据转发异常时进行本地存储,通讯恢复时,自动补发,降低了数据采集过程中的人工干预程度,提高了数据采集时应对网络中断的能力,使数据连续、可靠。2、本发明方法在数据采集时,采用基于协议的分布式服务构建和任务分配方法,能够充分利用采集资源,当某个实例出现异常时,能够自动实现任务重新分配,系统的可用性很高,也保证了数据采集功能的可靠性。
1.一种用于工业物联网的高可靠性的数据采集方法,其特征在于:面对下游系统,通过监测数据转发行为,对异常数据进行本地存储,当通讯正常后,再将存储的数据补发至下游系统;面对数据感知层面,通过建立多个服务实例,增加心跳机制和基于实例数量的任务动态分配算法,使实例中断时,能够重新分配任务,确保数据采集功能持续正常运行。
2.根据权利要求1所述的用于工业物联网的高可靠性的数据采集方法,其特征在于:面对下游系统进行数据补发具体包括如下步骤,
3.根据权利要求2所述的用于工业物联网的高可靠性的数据采集方法,其特征在于:本地数据库采用单个文件进行存储,并采用插入方式写入数据;该数据库存储设计基于工业物联网的应用场景,使用路径、属性、采集值和时间戳这些字段;所述路径代表的是一个唯一标记;所述属性对应的是采集的字段名;采集值是实际读取的数值,时间戳是数据存储的时间。
4.根据权利要求2所述的用于工业物联网的高可靠性的数据采集方法,其特征在于:限制转发行为的线程占用时间不能超过k秒,一旦超过该时间,则认为数据转发异常。
5.根据权利要求1所述的用于工业物联网的高可靠性的数据采集方法,其特征在于:面向数据感知层面的任务分配具体包括如下步骤,
6.根据权利要求5所述的用于工业物联网的高可靠性的数据采集方法,其特征在于:所述任务动态分配算法具体为,
