一种基于集群式共享缓存的数字量处理方法和系统与流程

文档序号:37469746发布日期:2024-03-28 18:52阅读:10来源:国知局
一种基于集群式共享缓存的数字量处理方法和系统与流程

本发明涉及轨道交通监控系统,特别是一种基于集群式共享缓存的数字量处理方法和系统。


背景技术:

1、随着轨道交通系统自动化系统的快速发展,应用在轨道交通行业的自动化系统规模与日俱增,系统架构越来越复杂,致使系统内部数据规模不断增大。尤其在线网综合监视系统、线网电力调度系统或等应用场景中更加突出,实时变化数据的规模已经超过几十万,这对于自动化的监控系统的处理能力和硬件资源是一个很大的压力,所以这就需要我们合理灵活地分配硬件资源和处理能力。由于数字量数据变化频率不大,按照车站和应用分布式部署数字量处理进程,造成硬件资源浪费和管理成本的增加。针对数字量这一特性,在数字量处理方法的基础上将分布式的处理方式更改为集群式的处理方式。

2、传统数字量进程部署方式中处理进程与前置进程是1对1 的关系,即某特定分类的处理进程只接受该分类的前置进程发过来的该分类的前置数据,数字量多个点位只会被该处理进程接受并处理,多位延时功能不需要与其他进程之间交互,独立完成该功能。但该种部署方式资源分配方式不灵活,无论分类数据规模的大小均需要部署单独进程,进程处理能力不够时,也不能灵活扩展处理能力。数字量处理集群部署方式可以实现硬件资源和处理能力的灵活分配和扩展,集群与前置进程是1对n的关系,即集群内实例随机平均接受所有前置进程的前置数据,数字量多个点位会被多个实例接受处理,实例之间需要合作完成多位延时功能。


技术实现思路

1、发明目的:本发明的目的是提供一种基于集群式共享缓存的数字量处理方法和系统,从而实现对数字量处理的硬件资源和处理能力的灵活配置和扩展,提高资源利用率和系统能力扩展性。

2、技术方案:本发明所述的一种基于集群式共享缓存的数字量处理方法,包括以下步骤:

3、步骤1、构建数字量处理集群,集群内各个实例平均随机接受各个子系统前置发送过来的采集数据,然后将多位延时数据信息存储在实例本地缓存和redis集群的共享缓存中;

4、步骤2、集群内各个实例定时处理本实例内部缓存的数字量的多位延时数字量,生成新值、发送报警、变化数据和时序数据;

5、步骤3、实例处理多位延时数据缓存、变化队列和报警队列,再进行下一周期多位延时处理过程。

6、步骤1所述的构建数字量处理集群指的是:集群中各个实例平均随机接受各个子系统前置发送过来的采集数据,在实例中程序自动判断数字量点位变化,并且多位延时时间大于零时,开始进行多位延时处理,如果该数字量延时信息不在redis共享缓存中,则认为该数字量是第一次点位变化,将该数字量的变化点位信息和其他点位的初始化信息存入redis的共享缓存,将该数字量的key信息存储在程序内部缓存中,并且设置该数字量在redis中前置时间戳;如果在redis共享缓存中的话,只更新redis共享缓存中的该变化点位信息,并且更新该数字量在redis中前置时间戳。

7、步骤1所述的多位延时数据信息存储在redis集群的共享缓存指的是:redis作为各个实例的共享缓存,存储数字量变位的第一次和其他所有点位的初始化信息、关键字和实例本地缓存相同,字段信息包括“第一次变位时间”、“延时时间”、“值”、“状态”、“秒级变位时间”、“毫秒级变位时间”和“是否变位”;前置变位时间关键字为数字量关键字,时间为任何点位变化的时间。

8、步骤1所述的多位延时数据信息存储在实例本地缓存指的是:因为子系统的前置数据是随机平均发送给数据处理集群,集群内各个实例随机收到数字量的第一次点位变化的数据包,需要处理的多位延时的数目基本相等,所以延时处理压力能够分布在各个实例上,当数字量第一次点位变化时,该实例存储的该数字量点位的关键字,即为多位延时数据信息的关键字,实例存储将该关键字和当前时间戳存储在实例中。

9、步骤2所述的集群内各个实例定时处理本实例内部缓存的数字量的多位延时数字量指的是:集群内各个实例定时处理本实例内部缓存的数字量的多位延时数字量,集群内各个实例间隔已定义的时间后通过本程序内部key缓存数据从redis中获取本实例的需要处理的多位延时数据,判断当前时间是否大于等于每个数字量的延时时间,如果满足条件,则表示达到延时时间,然后将该数字量的所有点位信息处理成数字量的最新值,进行数字量发送报警、变化数据、时序数据及其他处理步骤。

10、步骤2所述的生成新值、发送报警、变化数据和时序数据指的是: 将数字量的所有点位合成新值,即点位值依次为d1、d2……dn,新值v=d1*21-1+ d2*22-1+ d3*23-1+……+dn*2n-1,新值与从redis中获取该数字量上一次值进行对比,如果有变化则更新redis该数字量的值,然后将变化数据信息插入变化队列中,再将该变化值存储到时序数据库中,并从redis中获取数字量的事先定义好的值的数字量含义,对比新值定义内容将报警插入报警队列中。

11、步骤3所述的处理多位延时数据缓存指的是:读取该数字量在redis中前置时间戳,如果该时间戳大于定时任务处理的时间戳,表示有该数字量有新的点位变化更新,所以在实例内部缓存和redis缓存中不删除该数字量的相关信息,否则删除该数字量的相关信息,处理变化和报警队列内容,如果队列中超过一定的自定义数目或者处理周期结束后,将变化队列和报警队列中数据发送出去,并清空队列。

12、步骤3所述的多位延时处理指的是:监控平台内部用数字量来表示设备的多种工作状态,采用多位来表示设备状态;在采集单元实时采集设备实时状态后,以点位的方式更新数字量的多位来修改设备状态,这样在更新的过程中会产生无效状态;为了避免这些无效状态,需要更新的时候,等待值更新完毕后,再进行下一步的逻辑处理。

13、一种基于集群式共享缓存的数字量处理系统,采用上述的一种基于集群式共享缓存的数字量处理方法,包括以下模块:

14、数据采集模块:用于接受子系统发送的前置数据,并存储多位延时数据;

15、延时处理模块:用于处理共享缓存中多位延时数据,实现采集设备的点位处理;

16、缓存处理模块:用于处理多位延时缓存、变化队列和报警队列。

17、所述数据采集模块用于构建数字量处理集群,具体为:集群中各个实例平均随机接受各个子系统前置发送过来的采集数据,在实例中程序自动判断数字量点位变化,并且多位延时时间大于零时,开始进行多位延时处理,如果该数字量延时信息不在redis共享缓存中,则认为该数字量是第一次点位变化,将该数字量的变化点位信息和其他点位的初始化信息存入redis的共享缓存,将该数字量的key信息存储在程序内部缓存中,并且设置该数字量在redis中前置时间戳;如果在redis共享缓存中的话,只更新redis共享缓存中的该变化点位信息,并且更新该数字量在redis中前置时间戳;

18、所述数据采集模块存储多位延时数据的方式有两种,一种是将多位延时数据信息存储在redis集群的共享缓存上,具体为:redis作为各个实例的共享缓存,存储数字量变位的第一次和其他所有点位的初始化信息、关键字和实例本地缓存相同,字段信息包括“第一次变位时间”、“延时时间”、“值”、“状态”、“秒级变位时间”、“毫秒级变位时间”和“是否变位”;前置变位时间关键字为数字量关键字,时间为任何点位变化的时间;另一种是将多位延时数据信息存储在实例本地缓存,具体为:当数字量第一次点位变化时,该实例存储的该数字量点位的关键字,即为多位延时数据信息的关键字,实例存储将该关键字和当前时间戳存储在实例中。

19、所述延时处理模块用于处理多位延时缓存,具体为:读取该数字量在redis中前置时间戳,如果该时间戳大于定时任务处理的时间戳,表示有该数字量有新的点位变化更新,所以在实例内部缓存和redis缓存中不删除该数字量的相关信息,否则删除该数字量的相关信息,处理变化和报警队列内容,如果队列中超过一定的自定义数目或者处理周期结束后,将变化队列和报警队列中数据发送出去,并清空队列。

20、一种计算机存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现上述的一种基于集群式共享缓存的数字量处理方法。

21、一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述的一种基于集群式共享缓存的数字量处理方法。

22、有益效果:与现有技术相比,本发明具有如下优点:

23、1、本发明能够实现对数字量处理的硬件资源和处理能力的灵活配置和扩展,提高资源利用率和系统能力扩展性;

24、2、本发明所涉系统部署方式简单,系统迁移灵活,且既可以以传统方式部署,也可以容器化方式。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1