一种基于Redis的双平面采集数据方法及系统技术方案

技术编号:35738225 阅读:18 留言:0更新日期:2022-11-26 18:40
本发明专利技术公开了数据采集领域的一种基于Redis的双平面采集数据方法及系统,包括:通过选举算法由前置服务器A和前置服务器B中选出电力监控系统中是前置主服务器;通过双平面数据网分别建立前置服务器A、前置服务器B、变电站远动A和变电站远动B之间的通信链路;将前置服务器A的数据和前置服务器B的数据进行规约解析和数据处理,存入到Redis系统;前置主服务器对Redis系统中缓存的数据进行有效性处理、时效性持久化处理和行数据完整性处理,对当前Redis系统中的数据按时标进行排序后,发送到处理服务器;本发明专利技术避免了在故障期间丢失数据;保证数据采集的安全可靠、数据传输的高效以及通道切换以及机器节点切换期间数据的完整性。整性。整性。

【技术实现步骤摘要】
一种基于Redis的双平面采集数据方法及系统


[0001]本专利技术属于数据采集领域,具体涉及一种基于Redis的双平面采集数据方法及系统。

技术介绍

[0002]现有电力监控系一般在数据采集功能上通过主备方式进行处理,即将前置服务器机器节点分为主节点和备节点,只有主节点上主通道是进行链路采集、报文解析及数据处理的,主节点上的备通道和备节点的所有通道皆处于等待状态,只有当该通道切为主通道时,才进行链路采集、报文解析和数据处理功能。这种方式设计逻辑比较简单易行,但无法保证通道切换时数据的完整性和可靠性,降低了电力监控系统数据采集的可靠性。

技术实现思路

[0003]本专利技术的目的在于提供一种基于Redis的双平面采集数据方法及系统,电力监控系统中在双平面架构下进行安全可靠的数据采集和数据传输,并保证通道切换以及机器节点切换期间数据完整可靠。
[0004]为达到上述目的,本专利技术所采用的技术方案是:
[0005]本专利技术第一方面提供了一种基于Redis的双平面采集数据方法,包括:
[0006]通过选举算法由前置服务器A和前置服务器B中选出电力监控系统中是前置主服务器;
[0007]通过数据网第一平面分别建立前置服务器A与变电站远动A、前置服务器A与变电站远动B的通信链路;通过数据网第二平面分别建立前置服务器A与变电站远动A、前置服务器A与变电站远动B的通信链路,分别将各通信链路传输的前置服务器A的数据进行规约解析和数据处理,形成各链路的消息队列后,定时将消息队列进行格式转换并按照key+value格式进行数据封装后,存入到Redis系统;
[0008]通过数据网第一平面分别建立前置服务器B与变电站远动A、前置服务器B与变电站远动B的通信链路;通过数据网第二平面分别建立前置服务器B与变电站远动A、前置服务器B与变电站远动B的通信链路,分别将各通信链路传输的前置服务器B的数据进行规约解析和数据处理,形成各链路的消息队列后,定时将消息队列进行格式转换并按照key+value格式进行数据封装后,存入到Redis系统;
[0009]前置主服务器对Redis系统中缓存的数据进行有效性处理、时效性持久化处理和行数据完整性处理,对当前Redis系统中的数据按时标进行排序后,发送到电力监控系统中的处理服务器。
[0010]优选的,还包括:当系统中发生通信链路切换时,通过对Redis中缓存的数据进行一致性比较和连续性分析处理,将处理后的有效数据进行排序,发送到电力监控系统中的处理服务器。
[0011]优选的,通过选举算法由前置服务器A和前置服务器B中选出电力监控系统的前置
主服务器的方法包括:
[0012]在前置服务器A与前置服务器B之间周期性互发UDP心跳报文,UDP心跳报文内容包括本机前置模块的启动时间、本机机器名和网卡IP;
[0013]周期性互发心跳报文设置有超时阈值;当超时阈值内收到UDP心跳报文时,认定前置服务器A与前置服务器B之间的UDP连接心跳状态正常;当在超出该超时时间值未收到UDP心跳报文内容时,认定前置服务器A与前置服务器B之间的UDP连接心跳状态中断;
[0014]当前置服务器A与前置服务器B之间的UDP连接心跳状态正常时,根据启动时间由前置服务器A和前置服务器B中选举出电力监控系统的前置主服务器;
[0015]若前置服务器A或者前置服务器B未收到UDP心跳报文时,选举其为电力监控系统的前置主服务器。
[0016]优选的,分别将各通信链路传输的前置服务器A或前置服务器B的数据进行规约解析和数据处理的方法包括:
[0017]在前置服务器A和前置服务器B内独立设置各通信链路的发送数据缓存区和接收数据缓存区;将对应的通信链路收到的数据进行规约解析,并按照固定格式进行封装组帧后存储至接收数据缓存区,固定格式为链路ID、数据类型、数据个数、数据内容集合(数据值+时间戳);根据命令优先级维度对数据进行排序并存储至发送数据缓存区,通过通信链路依次发送所述发送数据缓存区内存储的数据。
[0018]优选的,所述key+value格式中key值为由链路名数据类型、数据点号和时间戳组合而成。
[0019]优选的,前置主服务器对Redis系统中缓存的数据进行有效性处理的方法包括:
[0020]将Redis系统中缓存的数据分为遥信类型数据、遥测类型数据和遥脉类型数据;对存入Redis中遥信类型数据进行分析处理,过滤出所有非0且非1的遥信数据;根据实际情况对存入Redis中各遥测类型数据和遥脉类型数据设定合理性范围,过滤出在合理性范围之外的遥测类型数据和遥脉类型数据。
[0021]优选的,前置主服务器对Redis系统中缓存的数据进行时效性持久化处理的方法包括
[0022]设定Redis系统的缓存时效阈值,对超过缓存时效阈值的缓存数据自动删除;通过Redis系统中持久化RDB机制完成缓存数据的持久化处理,当符合持久化配置条件时自动将缓存数据进行快照并持久化到硬盘。
[0023]优选的,前置主服务器对Redis系统中缓存数据进行数据完整性处理的方法包括:
[0024]采用哈希循环偏移算法对缓存数据进行处理,按照通信链路、数据类型、数据点号、时间戳创建缓存数据的哈希索引链表,通过检测哈希索引链表定位Redis系统中缓存数据的key值;
[0025]根据各通信链路的实时通讯状态和机器节点信息进行加权计算获得通信链路的优先级;当Redis系统中存在相同缓存数据时,只保留链路优先级最高的通信链路传输的数据。
[0026]优选的,按照时间戳对缓存数据进行排序整理并发送到电力监控系统中的处理服务器。
[0027]本专利技术第二方面提供了一种基于Redis实现双平面采集数据系统,包括:
[0028]选举模块,用于通过选举算法由前置服务器A和前置服务器B中选出电力监控系统中是前置主服务器;
[0029]通信链路建立模块,用于通过数据网第一平面分别建立前置服务器A与变电站远动A、前置服务器A与变电站远动B的通信链路;通过数据网第二平面分别建立前置服务器A与变电站远动A、前置服务器A与变电站远动B的通信链路,通过数据网第一平面分别建立前置服务器B与变电站远动A、前置服务器B与变电站远动B的通信链路;通过数据网第二平面分别建立前置服务器B与变电站远动A、前置服务器B与变电站远动B的通信链路;
[0030]缓存模块,将各通信链路传输的前置服务器A的数据进行规约解析和数据处理形成各链路的消息队列;将各通信链路传输的前置服务器B的数据进行规约解析和数据处理形成各链路的消息队列,定时将消息队列进行格式转换并按照key+value格式进行数据封装后,存入到Redis系统;
[0031]分析处理模块,用于前置主服务器对Redis系统中缓存的数据进行有效性处理、时效性持久化处理和行数据完整性处理,对当前Redis系统中的数据按时标进行排序后,发送到电力监控系统中的处理服务器。
本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于Redis的双平面采集数据方法,其特征在于,包括通过选举算法由前置服务器A和前置服务器B中选出电力监控系统中是前置主服务器;通过数据网第一平面分别建立前置服务器A与变电站远动A、前置服务器A与变电站远动B的通信链路;通过数据网第二平面分别建立前置服务器A与变电站远动A、前置服务器A与变电站远动B的通信链路,分别将各通信链路传输的前置服务器A的数据进行规约解析和数据处理,形成各链路的消息队列后,定时将消息队列进行格式转换并按照key+value格式进行数据封装后,存入到Redis系统;通过数据网第一平面分别建立前置服务器B与变电站远动A、前置服务器B与变电站远动B的通信链路;通过数据网第二平面分别建立前置服务器B与变电站远动A、前置服务器B与变电站远动B的通信链路,分别将各通信链路传输的前置服务器B的数据进行规约解析和数据处理,形成各链路的消息队列后,定时将消息队列进行格式转换并按照key+value格式进行数据封装后,存入到Redis系统;前置主服务器对Redis系统中缓存的数据进行有效性处理、时效性持久化处理和行数据完整性处理,对当前Redis系统中的数据按时标进行排序后,发送到电力监控系统中的处理服务器。2.根据权利要求1所述的一种基于Redis的双平面采集数据方法,其特征在于,还包括:当系统中发生通信链路切换时,通过对Redis中缓存的数据进行一致性比较和连续性分析处理,将处理后的有效数据进行排序,发送到电力监控系统中的处理服务器。3.根据权利要求1所述的一种基于Redis的双平面采集数据方法,其特征在于,通过选举算法由前置服务器A和前置服务器B中选出电力监控系统的前置主服务器的方法包括:在前置服务器A与前置服务器B之间周期性互发UDP心跳报文,UDP心跳报文内容包括本机前置模块的启动时间、本机机器名和网卡IP;周期性互发心跳报文设置有超时阈值;当超时阈值内收到UDP心跳报文时,认定前置服务器A与前置服务器B之间的UDP连接心跳状态正常;当在超出该超时时间值未收到UDP心跳报文内容时,认定前置服务器A与前置服务器B之间的UDP连接心跳状态中断;当前置服务器A与前置服务器B之间的UDP连接心跳状态正常时,根据启动时间由前置服务器A和前置服务器B中选举出电力监控系统的前置主服务器;若前置服务器A或者前置服务器B未收到UDP心跳报文时,选举其为电力监控系统的前置主服务器。4.根据权利要求1所述的一种基于Redis的双平面采集数据方法,其特征在于,分别将各通信链路传输的前置服务器A或前置服务器B的数据进行规约解析和数据处理的方法包括:在前置服务器A和前置服务器B内独立设置各通信链路的发送数据缓存区和接收数据缓存区;将对应的通信链路收到的数据进行规约解析,并按照固定格式进行封装组帧后存储至接收数据缓存区;根据命令优先级维度对数据进行排序并存储至发送数据缓存区,通过通信链路依次发送所述发送数据缓存区内存储的数据。5.根据权利要求1所述的一种基于Redis的双...

【专利技术属性】
技术研发人员:李德军胡铮宏刘柱云汪贤浩
申请(专利权)人:国电南京自动化股份有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1