CN112231319B - 一种地铁监控系统的实时数据存储和查询方法 - Google Patents
一种地铁监控系统的实时数据存储和查询方法 Download PDFInfo
- Publication number
- CN112231319B CN112231319B CN202011100631.2A CN202011100631A CN112231319B CN 112231319 B CN112231319 B CN 112231319B CN 202011100631 A CN202011100631 A CN 202011100631A CN 112231319 B CN112231319 B CN 112231319B
- Authority
- CN
- China
- Prior art keywords
- real
- service
- time
- point
- data
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/22—Indexing; Data structures therefor; Storage structures
- G06F16/2282—Tablespace storage structures; Management thereof
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/23—Updating
- G06F16/2358—Change logging, detection, and notification
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2455—Query execution
- G06F16/24552—Database cache management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2458—Special types of queries, e.g. statistical queries, fuzzy queries or distributed queries
- G06F16/2477—Temporal data queries
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/10—Active monitoring, e.g. heartbeat, ping or trace-route
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Computational Linguistics (AREA)
- Mathematical Physics (AREA)
- Probability & Statistics with Applications (AREA)
- Fuzzy Systems (AREA)
- Health & Medical Sciences (AREA)
- Cardiology (AREA)
- General Health & Medical Sciences (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Computer And Data Communications (AREA)
Abstract
本发明公开了一种地铁监控系统的实时数据存储和查询方法,该方法包括:并采用字段数字映射方法将设备、点模型映射为数字标识并设计不同的存储模式,极大减少了内存的消耗,提高了字段的访问效率;客户端查询数据时,路由代理依据节点的请求速率、空置处理速率生成对应的服务节点路由,查询首选访问服务节点的本地点表缓存,如果点不在缓存中,服务节点的代理服务根据规则进行二次路由映射访问实时主机,提高了查询效率和灵活性。
Description
技术领域
本发明涉及一种地铁监控系统的实时数据存储和查询方法,属于轨道交通监控系统技术领域。
背景技术
随着自动化、信息化技术的发展,地铁环境的综合监控系统采集点的数量呈几何式增长,由此对系统实时数据的存储及查询效率、可靠性、并发性提出了更高的要求。
目前地铁环境的监控系统采用简单的实时数据内存存储及访问。这种处理方式的缺点是:随着采集点的增加将极大消耗主机的系统内存;应用层查询增加,系统很难高效地处理并发行请求;另一方面,现有环境下简单的主备部署也缺乏简单、高效地处理系统同步、切换等手段。
发明内容
本发明的目的在于提供一种地铁监控系统的实时数据存储和查询方法,采用字段数字映射存储数据,通过路由代理规则算法及节点代理服务规则生成访问路径,配置监听服务处理系统的消息、切换等。
为达到上述目的,本发明采用的技术方案如下:
本发明提供一种地铁监控系统的实时数据存储和查询方法,包括:
构建地铁监控系统的实时数据存储和查询系统,包括客户端、转发代理keepalived、路由代理、服务节点、实时主备机和监听服务;
所述客户端用于下发查询实时数据请求;
所述实时主备机用于存储地铁监控系统实时监测数据;所述实时主备机采用Redis主备机加哨兵的部署方式;
所述转发代理keepalived采用主备模式部署在双机上,所述转发代理keepalived用于生成唯一的虚拟地址提供给客户端,以及用于将接收到的请求转发至路由代理;
所述路由代理采用双机分布式部署,所述路由代理用于生成服务节点路由;
所述服务节点采用分布式部署,所述服务节点用于与实时主备机进行数据交互;
所述服务节点配置节点代理服务;所述节点代理服务用于对请求进行二次转发;
所述监听服务采用单机部署,所述监听服务用于监听变换数据消息和未查询到数据消息,以及用于监听实时主备机状态;
采用所述地铁监控系统的实时数据存储和查询系统对地铁监控系统的实时数据进行存储,包括:
采集程序将全数据写入商用库,将变换数据写入实时主机;所述变换数据是指采集程序采集的点在实时主机已存在但该点的值与实时主机记录不同的数据;
刷新程序按照预设规则从商用库到实时主机做全数据刷新;
采用所述地铁监控系统的实时数据存储和查询系统对地铁监控系统的实时数据进行查询,包括:
客户端访问虚拟地址,经由转发代理Keepalived转发到路由代理;
路由代理依据服务的请求速率、空置处理速率生成服务节点路由,并将查询请求发送到所确定的服务节点;
服务节点响应查询请求。
进一步的,初始配置时,实时主机配置一个哨兵,实时备机配置两个哨兵,实时备机对实时主机做实时复制。
进一步的,所述刷新程序按照预设规则从商用库到实时主机做全数据刷新,包括:
监控系统启动时,刷新程序从商用库到实时主机做一次全数据刷新;
监控系统运行期间,刷新程序按以下规则做周期性数据刷新:
l×T+uui时间时,设备i上的点做一次全数据刷新到实时主机;
其中,l为正整数,表示第l个周期,T为预设的刷新周期,uui为设备i的刷新偏移量。
进一步的,所述将变换数据写入实时主机,以及所述刷新程序从商用库到实时主机做全数据刷新包括:
将变换数据和全数据转换成设备表或点表;
采用字段数字映射方法把设备表和点表中的对象和属性映射为数字编码;
基于数字编码,将设备表或点表将转换为数字标识并写入实时主机。
进一步的,所述将变换数据和全数据转换成设备表或点表包括:
设备表为:{专业.设备|属性1,...,属性a};
点表为:{专业.设备.点|属性1,...,属性b};
其中,a表示专业设备的属性个数;b表示专业设备中点的属性个数;
所述专业是指;对地铁监控系统中的设备按照业务类型进行划分的组别;
所述点是指:地铁监控系统中设备上需要监控的参数点。
进一步的,所述采用字段数字映射方法把设备表和点表中的对象和属性映射为数字编码,包括:
所述专业、设备、点依据递增的序列从低位开始编码,高位以0补齐相应的位数,各参数数字编码如下:
第i类专业的数字编码Gi为10g+1+i-1的后g位,第i类专业的第j个设备的数字编码Dj为10d+1+j-1的后d位,第i类专业的第j个设备上的第k个点的数字编码Pk为10p+1+k-1的后p位;所述Gi的数字编码设前缀标识X;所述Dj的数字编码设前缀标识Y;所述Pk的数字编码设前缀标识Z;
所述属性按照递增的序列从低位开始编码,高位以0补齐相应位数,
第l个属性的数字编码attrl为10n+1+l-1的后n位;所述attrl的数字编码设前缀标识A;
m为扩展位,G为专业个数,GiD为第i类专业的设备个数,GiDjP为第i类专业第j个设备上的点个数,N为所有设备和点去重后的属性个数。
进一步的,所述基于数字编码,将设备表或点表将转换为数字标识并写入实时主机,包括:
设备表{专业.设备|属性1,...,属性a}映射为{GiDj|attr1,...attra};
点表{专业.设备.点|属性1,...,属性b}映射为{GiDjPk|attr1,...attrb}。
所述设备表存储模式为:
hashkey-field1,value1[field2,value2,...,fieldj,valuej,...,fieldc,valuec],
其中,hashkey设定为第i类专业的数字编码,fieldj为第i类专业的第j个设备的数字编码,valuej={{attr1,v1},{attr2,v2},…,{attra,va}}为第i类专业的第j个设备的属性集合对象,attra为第i类专业的第j个设备的第a个属性的数字编码,va为第i类专业的第j个设备的第a个属性的值,下标c表示第i类专业的设备个数,下标a表示第i类专业的第j个设备的属性个数;
所述点表存储模式为:
hashkey-field11,value11,field12,value12,...,field1e,value1e[field21,value21..,field2f,value2f,...,fieldd1,valued1,...,fielddh,valuedh],
其中,hashkey为第i类专业的第j个设备的数字编码,field1e为第i类专业的第j个设备第1个点加该点第e个属性组合编码P1attre,value1e为第1个点加该点第e个属性的值,fieldd1为第i类专业的第j个设备第d个点加该点第1个属性组合编码Pdattr1,valued1为第d个点加该点第1个属性的值,fielddh为第i类专业的第j个设备第d个点加该点第h个属性组合编码Pdattrh,valuedh为第d个点加该点第h个属性的值,下标e表示第i类专业的第j个设备的第1个点的属性个数,下标f表示第i类专业的第j个设备的第2个点的属性个数,下标h表示第i类专业的第j个设备的第d个点的属性个数,下标d表示第i类专业的第j个设备的点的个数。
进一步的,所述路由代理依据服务的请求速率、空置处理速率生成服务节点路由,并将查询请求发送到所确定的服务节点,包括:
计算服务节点的当前正在处理请求速率:
Ii=Ci×Fi
其中,NCj为服务节点j的当前正在处理请求速率,Ii为服务节点j上的第i类服务的请求速率,Ci为第i类服务的服务并发数,Fi为第i类服务的访问频率;
计算服务节点的节点资源:
RRj=kj×hj+mj,
其中,RRj为服务节点j的节点资源,kj为服务节点j的CPU核数,hj为服务节点j的CPU频率,mj为服务节点j的内存;
对所有服务节点的节点资源进行归一化处理,得出服务节点所占总服务节点的处理速率能力的权重qj;
基于权重计算服务节点的最大处理速率:
SSj=qjTc,
其中,SSj为服务节点j的最大处理速率,Tc为依据项目规模及应用需求估算出所有服务节点的负载压力;j为服务节点编号,i为服务节点j的第i类服务编号;
根据服务节点的当前正在处理请求速率得到服务节点的空置处理速率为:SSj-NCj;
对所有服务节点的空置处理速率进行降序排列;
对于查询请求服务,依次分发到空置处理速率最大的服务节点。
进一步的,所述服务节点响应查询请求,包括:
如果查询请求的数据点在服务节点本地点缓存空间,则返回数据;
如果数据点未在服务节点本地点缓存空间中,则服务节点上的代理服务进行二次请求转发,从实时主机或备机读取数据,同时发送消息至监听服务。
进一步的,所述服务节点上的代理服务进行二次请求转发,从实时主机或备机读取数据,包括:
实时主备机状态正常时,数据信息和设备信息通过备机读取;
定义刷新时间段为:
Ti=(j×T+uui,j×T+uui+E),j为正整数;
其中,T为预设的刷新周期,uui为设备i的刷新偏移量,E为设备i上点刷新一次的时长估算,
如果查询时刻不属于Ti段,则读实时主机,否则读实时备机;
当没有实时备机运行时,则都从实时主机读取。
进一步的,所述监听服务包括:
监听服务注册Redis订阅通道TEchData及TCacheData,服务节点缓存设置过期时间,采集程序把变换数据投入TEchData通道,查询程序把第一次未在缓存中查询到的点投入到TCacheData中,监听服务通过相应通道获取消息,并更新服务节点缓存;
监听服务注册Redis哨兵订阅通道的+Sdown,-Sdown消息,监听收到消息,向部署有两个哨兵的备机发送心跳包,在设定的超时时间内,如果备机没有返回应答包,监听服务做如下操作:监听服务连接实时主机,判定实时主机当前Redis状态,如果Redis为master状态,则不作任何状态调整,否则设定实时主机Redis为master状态,设定实时主机上的哨兵的监控状态指向该实时主机。
本发明所达到的有益效果为:
本发明提供一种地铁监控系统的实时数据存储和查询系统及方法,采用字段数字映射,且设备、点设计不同的存储模式进行数据存储,这极大减少了内存的消耗,提高了字段的访问效率;路由映射代理将依据节点请求速率、空置处理速率生成服务节点路由,提高了查询的效率;节点代理服务通过二次转发,提高效率和灵活性;通过缓存、分布式服务部署、Redis主备机部署模式提高了系统的访问效率、并发性及可靠性;通过监听服务提供了高效的消息通讯、切换管理手段。
附图说明
图1为本发明的地铁监控系统实时数据存储和查询的系统架构图;
图2为本发明中一次数据查询流程图;
图3为本发明中监听服务监听实时主备机状态流程图。
具体实施方式
下面对本发明作进一步描述。以下实施例仅用于更加清楚地说明本发明的技术方案,而不能以此来限制本发明的保护范围。
本发明提出的一种地铁监控系统的实时数据存储和查询系统,如图1所示,
该系统由客户端、转发代理、路由代理、服务节点、实时主备机和监听服务构成。
具体的,实时主备机用于存储地铁监控系统实时监测数据,实时主备机采用Redis主备机加哨兵的部署方式,具体为:初始配置时,实时主机(R1)配置一个哨兵,实时备机(R2)配置两个哨兵,备机对主机做实时复制。
客户端指需要访问实时数据的程序。
转发代理keepalived采用主备模式部署在双机上,生成唯一的虚拟地址提供给客户端,同时配置转发代理keepalived把接收到的请求转发至路由代理。
当客户端访问虚拟地址时,客户端会被连接到配置成主的keepalived11上,系统运行期间,如果主的keepalived1宕机了,备的keepalived2将会升级为主,客户端将自动连接到keepalived2上,整个过程对访问是透明的,即客户端只需要访问虚拟地址就行,并不关注究竟是连接到了哪个keepalive上。
路由代理采用双机分布式部署。路由代理依据服务节点的请求速率、空置处理速率生成服务节点路由。
服务节点上运行有服务程序,服务节点基于服务节点路由与实时主备机进行交互,包括从主备机中查询、写入数据等。
服务节点为运行有服务程序的节点,服务程序主要是两类:一类用来接收和处理由路由代理转发过来的各种实时数据访问请求,另一类是做二次转发的代理服务,服务节点上还保有部分点表缓存数据。
服务节点采用三机器分布式部署。一台机器为一个服务节点。每一台服务节点保留部分点表缓存数据,并配置节点代理服务在一次查询失败时依据策略规则做二次查询转发。
监听服务采用单机部署并注册相关通道监听消息、更新数据,同时监听实时主备机的特殊状态并做相应的系统状态调整。
基于上述系统,本发明提供一种监控系统的实时数据存储和查询方法,
所述存储包括:
采集程序将全数据写入商用库,将变换数据写入实时主机;
刷新程序按照预设规则从商用库到Redis主机做全数据刷新。
具体的,全数据是指符合要求的所有数据,采集程序从地铁监控系统监控的设备采集到的所有数据,都会写一次商用库。
具体的,变换数据是指采集程序采集到的点在实时主机已存在但此次该点的值与实时主机记录的不同,在这种情况下需要写入实时主机。
具体的,刷新程序按照预设规则从商用库到Redis主机做全数据刷新,包括:
系统启动时,刷新程序从商用库到Redis主机做一次全数据刷新;
系统运行期间,刷新程序按以下规则做周期性数据刷新:
假定设备点分类为pij,表示i设备上的j点。程序初始化时,设置生成偏移量uui,表示i设备的刷新偏移量,设定刷新周期为T,则l×T+uui(l>=1,l为整数)时,i设备上的点做一次从商用库到Redis主机的全数据刷新;其中,l×T表示第l个周期开始的时间。
具体的,采集程序将变换数据写入实时主机,以及刷新程序从商用库到Redis主机做一次全数据刷新,需要将变换数据和全数据转换成设备表或点表。
本发明中采用字段数字映射方法把设备表和点表中的对象和属性映射为数字编码,包括:
设定专业(或组)个数为G;定义第i类专业(或组)的设备个数为GiD,第i类专业第j个设备上的点个数为GiDjP,因此表示所有专业最少需要位,表示某类专业上的设备最少需要表示某个设备上的点最少需要同时为保留扩展的灵活性,各分段增加扩展m位,因此各分段标识专业(或组)、设备、点的数字位数分别为:
所述专业(或组)是指,对地铁监控系统中的设备按照专业进行分类,譬如:scada(电力监控),bas(环境监控,涉及到空调、风机等),psd(屏蔽门系统)等。所述点是指,一个设备上需要监控的参数点,譬如一个电力设备,其涉及到的点包括:三相电压、三相电流、功率因素,这样就涉及到7个点。
第i类专业(或组)里的第j个设备上的第k个点GiDjPk,用数字编码表示的范围为:
XYZ为字段组标识前缀。
其中,A为属性的前缀标识。
专业(或组)、设备、点依据递增的序列从低位开始编码,高位以0补齐相应的位数,对于GiDjPk而言,Gi的数字编码为10g+1+i-1的后g位,Dj数字编码为10d+1+j-1的后d位,Pk数字编码为10p+1+k-1的后p位,(其中i,j,k取大于等于1的正整数)。
同理所有属性按照递增的序列从低位开始编码,高位以0补齐相应位数。所有属性字段记为[attr1,attr2,…,attrj,…,attrN],其中,attrj编码为10n+1+j-1(j取大于等于1的正整数)的后n位,最高位前再加标识前缀A,因此属性数字编码为:
通过上述基于字段数字映射编码的转换,系统设备或点表字段将转换为数字标识。
所述设备或点表字段映射为数字标识,包括:
设备表为:{专业.设备|属性1,...,属性a};
点表为:{专业.设备.点|属性1,...,属性b}。
建立映射表将所定义的不同专业、设备、点、属性标签按照数字映射编码进行处理,即得专业标签i→Gi,设备标签j→Dj,点标签k→Pk,属性n→attrn;
因此,设备表{专业.设备|属性1,...,属性a}映射为{GiDj|attr1,...attra},a表示第i类专业(或组)的第j个设备的属性个数。
点表{专业.设备.点|属性1,...,属性b}映射为{GiDjPk|attr1,...attrb},b表示第i类专业(或组)的第j个设备上的第k个点的属性个数。
进一步,本发明中,设备表和点表采用不同的存储模式,包括:
在Redis主机中,设备表存储为:
hashkey-field1,value1[field2,value2,...,fieldj,valuej,...,fieldc,valuec],
其中,hashkey设定为第i类专业的数字编码,fieldj为第i类专业的第j个设备的数字编码,valuej={{attr1,v1},{attr2,v2},…,{attra,va}}为第i类专业的第j个设备的属性集合对象,attra为第i类专业的第j个设备的第a个属性的数字编码,va为第i类专业的第j个设备的第a个属性的值,下标c表示第i类专业的设备个数,下标a表示第i类专业的第j个设备的属性个数;
所述点表存储模式为:
hashkey-field11,value11,field12,value12,...,field1e,value1e[field21,value21..,field2f,value2f,...,fieldd1,valued1,...,fielddh,valuedh]其中,hashkey为第i类专业的第j个设备的数字编码,field1e为第i类专业的第j个设备第1个点加该点第e个属性组合编码P1attre,value1e为第1个点加该点第e个属性的值,fieldd1为第i类专业的第j个设备第d个点加该点第1个属性组合编码Pdattr1,valued1为第d个点加该点第1个属性的值,fielddh为第i类专业的第j个设备第d个点加该点第h个属性组合编码Pdattrh,valuedh为第d个点加该点第h个属性的值,下标e表示第i类专业的第j个设备的第1个点的属性个数,下标f表示第i类专业的第j个设备的第2个点的属性个数,下标h表示第i类专业的第j个设备的第d个点的属性个数,下标d表示第i类专业的第j个设备的点的个数。
考虑到压缩效率和CPU额外损耗,设定每行hash宽表的单元列数不超过1000,如果某个hashkey存储field个数大于1000,则将hashkey编码最左端补一位0成为新hashkey,继续存储剩余field。Redis参数hash-zipmap-max-entries设置为1000。
所述查询包括:
客户端访问虚拟地址,经由Keepalived转发查询请求到路由代理;
路由代理依据服务的请求速率、空置处理速率生成服务节点路由;
路由代理依据相应的规则算法,转发查询请求到所选择的服务节点并访问服务节点本地点缓存空间,如果数据点在缓存中,则返回数据;如果数据点未在缓存空间中,服务节点上的代理服务将再次依据相应的策略规则进行二次请求转发,客户端最终从实时主机或备机读取数据,同时发送消息至监听服务。查询如图2所示。
所述路由代理生成服务节点路由包括:
定义服务节点上与实时数据查询有关的服务序列S为:[S1,S2,…Sq],其中,Si表示第i类服务,下标q表示服务序列的服务数。
依据项目应用需求估算出服务序列S的第i类服务Si的请求速率Ii:
Ii=Ci×Fi;
其中,Ci为第i类服务的服务并发数,Fi为第i类服务的访问频率;
则服务节点j的当前正在处理请求速率为:
定义服务节点j的节点资源为:
RRj=kj×hj+mj,
其中,kj为服务节点j的CPU核数,hj为服务节点j的CPU频率,mj为服务节点j的内存;
对所有服务节点的节点资源进行归一化处理,得出服务节点j所占总服务节点的处理速率能力的权重qj;
则,服务节点j的最大处理速率为:
SSj=qjTc;
Tc为依据项目规模及应用需求估算出所有服务节点的负载压力:
其中,j为服务节点编号,i为服务节点j的服务序列中的第i类服务编号。
因此服务节点j的空置处理速率为:SSj-NCj;
对所有服务节点的空置处理速率进行降序排列;
对于查询请求服务Si,依次分发到空置处理速率最大的服务节点。
所述的服务节点代理服务二次转发包括:
实时主备机状态正常时,元数据信息(记录字段数字映射的信息)、设备信息通过备机读取,对哈希结构存储的数据点pij(i设备上的j点),定义刷新时间段为:
Ti=(j×T+uui,j×T+uui+E),(j≥1且j取正整数,E>0),
其中,T为全数据刷新周期,uui为i设备的刷新偏移量,E为i设备上点刷新一次的时长估算;
如果查询时刻不属于Ti段,则读主机,否则读备机。
当系统中没有备机运行时,则都从主机读取。
所述监听服务监听包括:
监听服务注册相应通道,监听变换数据消息、未命中数据点消息,当监听到此类消息后做相应缓存数据更新操作;监听服务监听实时主备机的状态,当检测到R2离线时,检测R1主机的状态,依据规则做实时主备机状态的迁移和调整,如图3所示。
具体包括:
监听服务注册Redis订阅通道TEchData及TCacheData,缓存数据设置过期时间,采集程序把变换数据投入TEchData通道,查询程序把第一次未在缓存中查询到的点投入到TCacheData中,监听服务通过相应通道获取消息,并更新服务节点缓存。
监听服务注册Redis哨兵订阅通道的+Sdown,-Sdown消息,监听收到消息,向部署有两个哨兵的机器(R2)发送心跳包,在设定的超时时间内,如果该机器没有返回应答包,监听服务做如下操作:监听服务连接另一台机器(R1),判定当前机器Redis状态,如果Redis为master状态,则不作任何状态调整,否则设定该台机器Redis为master状态,设定该台机器上的哨兵的监控状态指向该主机(R1)。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明技术原理的前提下,还可以做出若干改进和变形,这些改进和变形也应视为本发明的保护范围。
Claims (9)
1.一种地铁监控系统的实时数据存储和查询方法,其特征在于,包括:
构建地铁监控系统的实时数据存储和查询系统,包括客户端、转发代理keepalived、路由代理、服务节点、实时主备机和监听服务;
所述客户端用于下发查询实时数据请求至转发代理keepalived;
所述实时主备机用于存储地铁监控系统实时监测数据;
所述转发代理keepalived用于生成唯一的虚拟地址提供给客户端,以及用于将接收到的请求转发至路由代理;
所述路由代理用于生成服务节点路由;
所述服务节点用于与实时主备机进行数据交互,响应查询请求;所述服务节点配置节点代理服务;所述节点代理服务用于对接收到的查询实时数据请求进行二次转发;
所述监听服务用于监听变换数据消息和未查询到数据消息,以及用于监听实时主备机状态;
采用所述地铁监控系统的实时数据存储和查询系统对地铁监控系统的实时数据进行存储,包括:
通过采集程序将全数据写入商用库,将变换数据写入实时主机;所述变换数据是指采集程序采集的点在实时主机已存在但该点的值与实时主机记录不同的数据;
通过刷新程序按照预设规则从商用库到实时主机做全数据刷新;
所述将变换数据写入实时主机,包括:
将变换数据和全数据转换成设备表或点表,如下:
设备表为:{专业.设备|属性1,...,属性a};
点表为:{专业.设备.点|属性1,...,属性b};
其中,a表示专业设备的属性个数;b表示专业设备中点的属性个数;
所述专业是指;对地铁监控系统中的设备按照业务类型进行划分的组别;
所述点是指:地铁监控系统中设备上需要监控的参数点;
采用字段数字映射方法把设备表和点表中的对象和属性映射为数字编码,包括:所述专业、设备、点依据递增的序列从低位开始编码,高位以0补齐相应的位数;所述属性按照递增的序列从低位开始编码,高位以0补齐相应位数;
基于数字编码,将设备表或点表将转换为数字标识并写入实时主机,包括:
设备表{专业.设备|属性1,...,属性a}映射为{GiDj|attr1,...attra};
点表{专业.设备.点|属性1,...,属性b}映射为{GiDjPk|attr1,...attrb};
其中,Gi表示第i类专业的数字编码,Dj表示第i类专业的第j个设备的数字编码,Pk表示第i类专业的第j个设备上的第k个点的数字编码,attra表示第i类专业的第j个设备的第a个属性的数字编码,attrb表示第i类专业的第j个设备上的第k个点的第b个属性的数字编码;
采用所述地铁监控系统的实时数据存储和查询系统对地铁监控系统的实时数据进行查询,包括:
通过客户端访问虚拟地址,经由转发代理Keepalived转发到路由代理;
通过路由代理依据服务的请求速率、空置处理速率生成服务节点路由,并将查询请求发送到所确定的服务节点;
服务节点响应查询请求,如下:
如果查询请求的数据点在服务节点本地点缓存空间,则返回数据;
如果查询请求的数据点未在服务节点本地点缓存空间中,则通过服务节点上的节点代理服务进行二次请求转发,从实时主机或备机读取数据,同时发送消息至监听服务。
2.根据权利要求1所述的一种地铁监控系统的实时数据存储和查询方法,其特征在于,所述刷新程序按照预设规则从商用库到实时主机做全数据刷新,包括:
监控系统启动时,刷新程序从商用库到实时主机做一次全数据刷新;
监控系统运行期间,刷新程序按以下规则做周期性数据刷新:
l×T+uui时间时,设备i上的点做一次全数据刷新到实时主机;
其中,l为正整数,表示第l个周期,T为预设的刷新周期,uui为设备i的刷新偏移量。
3.根据权利要求1所述的一种地铁监控系统的实时数据存储和查询方法,其特征在于,
所述专业、设备、点依据递增的序列从低位开始编码,高位以0补齐相应的位数,各参数数字编码如下:
第i类专业的数字编码Gi为10g+1+i-1的后g位,第i类专业的第j个设备的数字编码Dj为10d+1+j-1的后d位,第i类专业的第j个设备上的第k个点的数字编码Pk为10p+1+k-1的后p位;所述Gi的数字编码设前缀标识X;所述Dj的数字编码设前缀标识Y;所述Pk的数字编码设前缀标识Z;
所述属性按照递增的序列从低位开始编码,高位以0补齐相应位数,
第l个属性的数字编码attrl为10n+1+l-1的后n位;所述attrl的数字编码设前缀标识A;
m为扩展位,G为专业个数,GiD为第i类专业的设备个数,GiDjP为第i类专业第j个设备上的点个数,N为所有设备和点去重后的属性个数。
4.根据权利要求3所述的一种地铁监控系统的实时数据存储和查询方法,其特征在于,所述基于数字编码,将设备表或点表将转换为数字标识并写入实时主机,还包括:
所述设备表存储模式为:
hashkey-field1,value1[field2,value2,...,fieldj,valuej,...,fieldc,valuec],
其中,hashkey设定为第i类专业的数字编码,fieldj为第i类专业的第j个设备的数字编码,valuej={{attr1,v1},{attr2,v2},…,{attra,va}}为第i类专业的第j个设备的属性集合对象,attra为第i类专业的第j个设备的第a个属性的数字编码,va为第i类专业的第j个设备的第a个属性的值,下标c表示第i类专业的设备个数,下标a表示第i类专业的第j个设备的属性个数;
所述点表存储模式为:
hashkey-field11,value11,field12,value12,...,field1e,value1e[field21,value21..,field2f,value2f,...,fieldd1,valued1,...,fielddh,valuedh],
其中,hashkey为第i类专业的第j个设备的数字编码,field1e为第i类专业的第j个设备第1个点加该点第e个属性组合编码P1attre,value1e为第1个点加该点第e个属性的值,fieldd1为第i类专业的第j个设备第d个点加该点第1个属性组合编码Pdattr1,valued1为第d个点加该点第1个属性的值,fielddh为第i类专业的第j个设备第d个点加该点第h个属性组合编码Pdattrh,valuedh为第d个点加该点第h个属性的值,下标e表示第i类专业的第j个设备的第1个点的属性个数,下标f表示第i类专业的第j个设备的第2个点的属性个数,下标h表示第i类专业的第j个设备的第d个点的属性个数,下标d表示第i类专业的第j个设备的点的个数。
5.根据权利要求1所述的一种地铁监控系统的实时数据存储和查询方法,其特征在于,所述路由代理依据服务的请求速率、空置处理速率生成服务节点路由,并将查询请求发送到所确定的服务节点,包括:
计算服务节点的当前正在处理请求速率:
Ii=Ci×Fi
其中,NCj为服务节点j的当前正在处理请求速率,Ii为服务节点j上的第i类服务的请求速率,Ci为第i类服务的服务并发数,Fi为第i类服务的访问频率;
计算服务节点的节点资源:
RRj=kj×hj+mj,
其中,RRj为服务节点j的节点资源,kj为服务节点j的CPU核数,hj为服务节点j的CPU频率,mj为服务节点j的内存;
对所有服务节点的节点资源进行归一化处理,得出服务节点所占总服务节点的处理速率能力的权重qj;
基于权重计算服务节点的最大处理速率:
SSj=qjTc,
其中,SSj为服务节点j的最大处理速率,Tc为依据项目规模及应用需求估算出所有服务节点的负载压力;j为服务节点编号,i为服务节点j的第i类服务编号;
根据服务节点的当前正在处理请求速率得到服务节点的空置处理速率为:SSj-NCj;
对所有服务节点的空置处理速率进行降序排列;
对于查询请求服务,依次分发到空置处理速率最大的服务节点。
6.根据权利要求1所述的一种地铁监控系统的实时数据存储和查询方法,其特征在于,所述服务节点上的代理服务进行二次请求转发,从实时主机或备机读取数据,包括:
实时主备机状态正常时,数据信息和设备信息通过备机读取;
定义刷新时间段为:
Ti=(j×T+uui,j×T+uui+E),j为正整数;
其中,T为预设的刷新周期,uui为设备i的刷新偏移量,E为设备i上点刷新一次的时长估算,
如果查询时刻不属于Ti段,则读实时主机,否则读实时备机;
当没有实时备机运行时,则都从实时主机读取。
7.根据权利要求1所述的一种地铁监控系统的实时数据存储和查询方法,其特征在于,所述监听服务包括:
监听服务注册Redis订阅通道TEchData及TCacheData,服务节点缓存设置过期时间,采集程序把变换数据投入TEchData通道,查询程序把第一次未在缓存中查询到的点投入到TCacheData中,监听服务通过相应通道获取消息,并更新服务节点缓存;
监听服务注册Redis哨兵订阅通道的+Sdown,-Sdown消息,监听收到消息,向部署有两个哨兵的备机发送心跳包,在设定的超时时间内,如果备机没有返回应答包,监听服务做如下操作:监听服务连接实时主机,判定实时主机当前Redis状态,如果Redis为master状态,则不作任何状态调整,否则设定实时主机Redis为master状态,设定实时主机上的哨兵的监控状态指向该实时主机。
8.根据权利要求1所述的一种地铁监控系统的实时数据存储和查询方法,其特征在于,
所述实时主备机采用Redis主备机加哨兵的部署方式;
所述转发代理keepalived采用主备模式部署在双机上,
所述路由代理采用双机分布式部署,
所述服务节点采用分布式部署,
所述监听服务采用单机部署。
9.根据权利要求1所述的一种地铁监控系统的实时数据存储和查询方法,其特征在于,初始配置时,实时主机配置一个哨兵,实时备机配置两个哨兵,实时备机对实时主机做实时复制。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011100631.2A CN112231319B (zh) | 2020-10-15 | 2020-10-15 | 一种地铁监控系统的实时数据存储和查询方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011100631.2A CN112231319B (zh) | 2020-10-15 | 2020-10-15 | 一种地铁监控系统的实时数据存储和查询方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112231319A CN112231319A (zh) | 2021-01-15 |
CN112231319B true CN112231319B (zh) | 2022-11-15 |
Family
ID=74113063
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011100631.2A Active CN112231319B (zh) | 2020-10-15 | 2020-10-15 | 一种地铁监控系统的实时数据存储和查询方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112231319B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114125059B (zh) * | 2021-10-11 | 2023-08-25 | 国电南瑞科技股份有限公司 | 一种基于容器的监控实时数据缓存系统及方法 |
CN114896118A (zh) * | 2022-04-28 | 2022-08-12 | 卡斯柯信号(成都)有限公司 | 一种基于redis的设备状态点码订阅方法 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107870970A (zh) * | 2017-09-06 | 2018-04-03 | 北京理工大学 | 一种数据存储查询方法及系统 |
CN109656753A (zh) * | 2018-12-03 | 2019-04-19 | 上海电科智能系统股份有限公司 | 一种应用于轨道交通综合监控系统的冗余热备系统 |
-
2020
- 2020-10-15 CN CN202011100631.2A patent/CN112231319B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107870970A (zh) * | 2017-09-06 | 2018-04-03 | 北京理工大学 | 一种数据存储查询方法及系统 |
CN109656753A (zh) * | 2018-12-03 | 2019-04-19 | 上海电科智能系统股份有限公司 | 一种应用于轨道交通综合监控系统的冗余热备系统 |
Also Published As
Publication number | Publication date |
---|---|
CN112231319A (zh) | 2021-01-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112231319B (zh) | 一种地铁监控系统的实时数据存储和查询方法 | |
CN110262922B (zh) | 基于副本数据日志的纠删码更新方法及系统 | |
CN108769111A (zh) | 一种服务器连接方法、计算机可读存储介质及终端设备 | |
CN110168529B (zh) | 数据存储方法、装置和存储介质 | |
CN103561057A (zh) | 基于分布式哈希表和纠删码的数据存储方法 | |
CN103838770A (zh) | 一种数据逻辑分区的方法和系统 | |
CN102609446B (zh) | 一种分布式Bloom过滤系统及其使用方法 | |
CN105593828A (zh) | 管理文件的方法、分布式存储系统和管理节点 | |
CN110928690B (zh) | 一种在5g网络环境下区块链数据同步和验证的方法 | |
US20080168071A1 (en) | Storing Data in Predicted Formats | |
CN103778120A (zh) | 全局文件标识生成方法、生成装置及相应的分布式文件系统 | |
CN112506486A (zh) | 搜索系统建立方法、装置、电子设备及可读存储介质 | |
CN113704217A (zh) | 一种分布式持久性内存文件系统中元数据及数据组织架构方法 | |
CN113612632B (zh) | 应用于网关设备的拓扑识别方法、装置、网关设备和介质 | |
CN112084303B (zh) | 基于HBase的电网运行数据存储访问方法及其系统 | |
JP2014502756A (ja) | ツリー構造に基づくマスデータストレージの装置および方法 | |
CN101324858A (zh) | 一种数据恢复方法、系统及终端 | |
CN111382319B (zh) | 一种面向知识图谱的图数据表示和映射方法 | |
CN114553766B (zh) | 基于区块链的车辆安全防护方法以及相关装置 | |
CN116010498A (zh) | 一种分布式全局唯一规则id的生成方法 | |
CN107342944B (zh) | 一种id标识分配与持久化方法及系统 | |
CN113542013B (zh) | 虚拟化网络功能管理消息分配方法、装置及设备 | |
CN108270862A (zh) | 电表数据获取方法及装置 | |
Siegmund et al. | Towards robust data storage in wireless sensor networks | |
CN116893788B (zh) | 元数据处理方法、硬件加速网卡、系统及可读存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |