CN105302670A - 一种采用多机冗余方式对车站进行监控的方法及装置 - Google Patents
一种采用多机冗余方式对车站进行监控的方法及装置 Download PDFInfo
- Publication number
- CN105302670A CN105302670A CN201510741031.7A CN201510741031A CN105302670A CN 105302670 A CN105302670 A CN 105302670A CN 201510741031 A CN201510741031 A CN 201510741031A CN 105302670 A CN105302670 A CN 105302670A
- Authority
- CN
- China
- Prior art keywords
- processing unit
- data processing
- station
- data
- message
- 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.)
- Granted
Links
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
- Hardware Redundancy (AREA)
Abstract
本发明实施例公开了一种采用多机冗余方式对车站进行监控的方法及装置,该方法应用于轨道交通监控***,该方法包括:第一数据处理单元获取将第一数据处理单元作为备用数据处理单元的N个车站的数据信息;第一数据处理单元确定第二车站***的车站数据处理单元处于非主用状态的情况下,将第一数据处理单元更新为第二车站的主用数据处理单元,并根据第二车站的数据信息,对第二车站进行监控。本发明实施例通过在一个数据处理单元中部署多个车站的数据信息,在无需大量追加硬件投入的基础上,实现了多机冗余的效果,有效提高***的整体可靠性。
Description
技术领域
本发明涉及轨道交通领域,尤其涉及一种采用多机冗余方式对车站进行监控的方法及装置。
背景技术
轨道交通综合监控***承担着对城市轨道交通控制中心和车站电力、环控、信号、火灾报警等多个子***设备进行监控的重大任务,是地铁正常运营和救灾指挥的基本保证,涉及到人身和设备的安全。因此,综合监控***的保护机制非常重要,可靠性和安全性要求极高。为了提高***的可靠性,针对综合监控的核心实时数据库***,行业内主流采用双机冗余的方式,在单服务器上运行的实时数据库***出现故障之后,热备的备服务器上的实时数据库***可以升级为主,对外提供服务。
这种双机冗余的机制,可以有效保障单点故障发生时***对外提供服务的能力。但是在我国南方曾发生过由于机房温度过高,车站内两台服务器同时宕机的情况,在这种情况下,双机冗余就不能满足异地容灾的要求了。于是行业内也出现了部分厂家提供的多机冗余方案,但是由于其关键技术实现的原因,此类多机冗余方案在故障隔离的前提下,要想实现多机冗余,必须追加价格昂贵的服务器硬件资源,最终业主无法接受此类方案。
综上,由于多机冗余技术可以让中心、备用中心或其他车站的服务器接管故障车站服务器的功能,同时提供异地容灾功能,能进一步提高***的可靠性。从而,目前亟需一种不追加硬件投入,又切实可行的多机冗余方案来实现对车站的监控。
发明内容
本发明实施例提供一种采用多机冗余方式对车站进行监控的方法及装置,用以提供一种不追加硬件投入,又切实可行的多机冗余方案来实现对车站的监控。
本发明实施例提供的一种采用多机冗余方式对车站进行监控的方法,应用于轨道交通监控***,所述轨道交通监控***包括:中心管理***以及所述中心管理***控制下的M个车站***,M≥1,所述中心管理***中设置有中心数据处理单元,所述车站***中设置有车站数据处理单元;该方法包括:
第一数据处理单元获取将所述第一数据处理单元作为备用数据处理单元的N个车站的数据信息;所述第一数据处理单元为所述中心数据处理单元或者所述第一车站***的车站数据处理单元;其中,1≤N≤M;所述N个车站为M个车站中的任意N个车站;第一车站为M个车站中的除所述N个车站以外的车站;
所述第一数据处理单元确定第二车站***的车站数据处理单元处于非主用状态的情况下,将所述第一数据处理单元更新为所述第二车站的主用数据处理单元;所述第二车站为所述N个车站中的任一车站;
所述第一数据处理单元根据所述第二车站的数据信息,对所述第二车站进行监控。
较佳地,所述第一数据处理单元获取将所述第一数据处理单元作为备用数据处理单元的N个车站的数据信息,包括:
所述第一数据处理单元向将所述第一数据处理单元作为备用数据处理单元的N个车站***的车站数据处理单元发送增量请求消息;
所述第一数据处理单元接收所述N个车站***的车站数据处理单元根据所述增量请求消息发送的增量数据。
较佳地,所述第一数据处理单元向将所述第一数据处理单元作为备用数据处理单元的N个车站***的车站数据处理单元发送增量请求消息之后,还包括:
所述第一数据处理单元按照设定周期向所述N个车站***的车站数据处理单元发送整表请求消息;所述第一数据处理单元接收所述N个车站***的车站数据处理单元根据所述整表请求消息返回的整表数据;或者,
所述第一数据处理单元按照设定周期接收所述N个车站***的车站数据处理单元返回的整表数据。
较佳地,所述非主用状态为备用状态;
所述第一数据处理单元确定第二车站***的车站数据处理单元处于非主用状态的情况下,将所述第一数据处理单元更新为所述第二车站的主用数据处理单元,包括:
所述第一数据处理单元接收所述第二车站***的车站数据处理单元发送的通知消息;所述通知消息为所述第二车站***的车站数据处理单元在接收到由主用状态切换为备用状态的切换命令后发送的;所述通知消息中包括所述第二车站***的车站数据处理单元的增量数据和所述第二车站***的车站数据处理单元的切换后的状态信息;
所述第一数据处理单元根据所述第二车站***的车站数据处理单元切换后的状态信息,确定所述第二车站***的车站数据处理单元切换后的状态为备用状态的情况下,将所述第一数据处理单元更新为所述第二车站的主用数据处理单元。
较佳地,所述第二车站还包括除所述第一数据处理单元以外的备用数据处理单元;
该方法还包括:
所述第一数据处理单元接收所述第二车站***的车站数据处理单元及所述除所述第一数据处理单元以外的备用数据处理单元发送的组播消息;所述组播消息中包括所述第二车站***的车站数据处理单元及所述除所述第一数据处理单元以外的备用数据处理单元处理第一进程的优先级;所述第一进程为所述第二车站***待处理的进程;
所述第一数据处理单元获取自身处理所述第一进程的优先级;
所述第一数据处理单元将自身处理所述第一进程的优先级与所述第二车站***的车站数据处理单元及所述除所述第一数据处理单元以外的备用数据处理单元处理所述第一进程的优先级进行比较,在确定自身处理所述第一进程的优先级最高的情况下,对所述第一进程进行处理,并将处理结果至少反馈给第二车站的主用数据处理单元。
较佳地,所述第二车站还包括除所述第一数据处理单元以外的备用数据处理单元;
该方法还包括:
所述第一数据处理单元接收将第一进程设置为主进程的切换命令;
所述第一数据处理单元将所述第一数据处理单元中的所述第一进程设置为主进程,并向所述第二车站***的车站数据处理单元及所述除所述第一数据处理单元以外的备用数据处理单元发送通知消息,以使所述第二车站***的车站数据处理单元及所述除所述第一数据处理单元以外的备用数据处理单元根据所述通知消息将所述第一进程设置为从进程。
较佳地,所述第二车站还包括除所述第一数据处理单元以外的备用数据处理单元;
所述第一数据处理单元确定第二车站***的数据数据处理单元处于非主用状态的情况下,将所述第一数据处理单元更新为所述第二车站的主用数据处理单元,包括:
所述第一数据处理单元确定第二车站***的数据处理单元处于非主用状态,且,所述第一数据处理单元的主用优先级高于所述除所述第一数据处理单元以外的备用数据处理单元的情况下,将所述第一数据处理单元更新为所述第二车站的主用数据处理单元。
本发明实施例提供一种采用多机冗余方式对车站进行监控的装置,该装置应用于轨道交通监控***,所述轨道交通监控***包括:中心管理***以及所述中心管理***控制下的M个车站***,M≥1,所述中心管理***中设置有中心数据处理单元,所述车站***中设置有车站数据处理单元;该装置包括:
获取模块,用于获取将第一数据处理单元作为备用数据处理单元的N个车站的数据信息;所述第一数据处理单元为所述中心数据处理单元或者所述第一车站***的车站数据处理单元;其中,1≤N≤M;所述N个车站为M个车站中的任意N个车站;第一车站为M个车站中的除所述N个车站以外的车站;
处理模块,用于确定第二车站***的车站数据处理单元处于非主用状态的情况下,将所述第一数据处理单元更新为所述第二车站的主用数据处理单元;所述第二车站为所述N个车站中的任一车站;
监控模块,用于根据所述第二车站的数据信息,对所述第二车站进行监控。
较佳地,所述获取模块具体用于:
向将所述第一数据处理单元作为备用数据处理单元的N个车站***的车站数据处理单元发送增量请求消息;
接收所述N个车站***的车站数据处理单元根据所述增量请求消息发送的增量数据。
较佳地,所述获取模块还用于:
按照设定周期向所述N个车站***的车站数据处理单元发送整表请求消息;接收所述N个车站***的车站数据处理单元根据所述整表请求消息返回的整表数据;或者,
按照设定周期接收所述N个车站***的车站数据处理单元返回的整表数据。
较佳地,所述非主用状态为备用状态;
所述处理模块具体用于:
接收所述第二车站***的车站数据处理单元发送的通知消息;所述通知消息为所述第二车站***的车站数据处理单元在接收到由主用状态切换为备用状态的切换命令后发送的;所述通知消息中包括所述第二车站***的车站数据处理单元的增量数据和所述第二车站***的车站数据处理单元的切换后的状态信息;
根据所述第二车站***的车站数据处理单元切换后的状态信息,确定所述第二车站***的车站数据处理单元切换后的状态为备用状态的情况下,将所述第一数据处理单元更新为所述第二车站的主用数据处理单元。
较佳地,所述第二车站还包括除所述第一数据处理单元以外的备用数据处理单元;
所述处理模块还用于:
接收所述第二车站***的车站数据处理单元及所述除所述第一数据处理单元以外的备用数据处理单元发送的组播消息;所述组播消息中包括所述第二车站***的车站数据处理单元及所述除所述第一数据处理单元以外的备用数据处理单元处理第一进程的优先级;所述第一进程为所述第二车站***待处理的进程;
获取自身处理所述第一进程的优先级;
将自身处理所述第一进程的优先级与所述第二车站***的车站数据处理单元及所述除所述第一数据处理单元以外的备用数据处理单元处理所述第一进程的优先级进行比较,在确定自身处理所述第一进程的优先级最高的情况下,将所述第一进程进行处理,并将处理结果至少反馈给第二车站的主用数据处理单元。
较佳地,所述第二车站还包括除所述第一数据处理单元以外的备用数据处理单元;
所述处理模块具体用于:
确定第二车站***的数据处理单元处于非主用状态,且,所述第一数据处理单元的主用优先级高于所述除所述第一数据处理单元以外的备用数据处理单元的情况下,将所述第一数据处理单元更新为所述第二车站的主用数据处理单元。
较佳地,所述第二车站还包括除所述第一数据处理单元以外的备用数据处理单元;
所述处理模块具体用于:
接收将第一进程设置为主进程的切换命令;
将所述第一数据处理单元中的所述第一进程设置为主进程,并向所述第二车站***的车站数据处理单元及所述除所述第一数据处理单元以外的备用数据处理单元发送通知消息,以使所述第二车站***的车站数据处理单元及所述除所述第一数据处理单元以外的备用数据处理单元根据所述通知消息将所述第一进程设置为从进程。
本发明的上述实施例提供一种采用多机冗余方式对车站进行监控的方法,应用于轨道交通监控***,该***包括:中心管理***以及中心管理***控制下的M个车站***,M≥1,中心管理***中设置有中心数据处理单元,车站***中设置有车站数据处理单元;该方法包括:第一数据处理单元获取将第一数据处理单元作为备用数据处理单元的N个车站的数据信息;第一数据处理单元为中心数据处理单元或者第一车站***的车站数据处理单元;第一车站为N个车站以外的车站;第一数据处理单元确定第二车站***的车站数据处理单元处于非主用状态的情况下,将第一数据处理单元更新为第二车站的主用数据处理单元,并根据第二车站的数据信息,对第二车站进行监控;第二车站为N个车站中的任一车站。本发明实施例中,通过第一数据处理单元获取N个车站的数据信息,并将第一数据处理单元作为N个车站的备用数据处理单元,从而实现了在一个数据处理单元中部署多个车站的数据信息,在无需大量追加硬件投入的基础上,实现了多机冗余的效果,从而使得当上述N个车站中的某一车站***的数据处理单元不可用时,第一数据处理单元可更新为该车站的主用数据处理单元,并根据该车站的数据信息,对该车站进行监控,确保监控***的整体可靠性。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简要介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的一种采用多机冗余方式对车站进行监控的方法所对应的流程示意图;
图2为本发明实施例中主机和备机的数据同步过程示意图;
图3为本发明实施例中手动切换与数据同步的实现过程示意图;
图4为本发明实施例提供的一种采用多机冗余方式对车站进行监控的装置的结构示意图。
具体实施方式
为了使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明作进一步地详细描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
本发明实施例提供的一种采用多机冗余方式对车站进行监控的方法,应用于轨道交通监控***,该***包括:中心管理***以及所述中心管理***控制下的M个车站***,M≥1,所述中心管理***中设置有中心数据处理单元,车站***中设置有车站数据处理单元。
本发明实施例中,中心管理***与车站***之间的架构采用的是完全分布式架构,另外,作为其它车站的备用数据处理单元的第一数据处理单元可支持各个车站之间的业务隔离,从而对不同的车站进行监控,相互之间互不影响。
图1为本发明实施例提供的一种采用多机冗余方式对车站进行监控的方法所对应的流程示意图,该方法包括:
步骤101,第一数据处理单元获取将所述第一数据处理单元作为备用数据处理单元的N个车站的数据信息;所述第一数据处理单元为所述中心数据处理单元或者所述第一车站***的车站数据处理单元;其中,1≤N≤M;所述N个车站为M个车站中的任意N个车站;第一车站为M个车站中的除所述N个车站以外的车站;
步骤102,所述第一数据处理单元确定第二车站***的车站数据处理单元处于非主用状态的情况下,将所述第一数据处理单元更新为所述第二车站的主用数据处理单元;所述第二车站为所述N个车站中的任一车站;
步骤103,所述第一数据处理单元根据所述第二车站的数据信息,对所述第二车站进行监控。
本发明实施例中,第一数据处理单元获取将第一数据处理单元作为备用数据处理单元的N个车站的数据信息;第一数据处理单元为中心数据处理单元或者第一车站***的车站数据处理单元;第一车站为N个车站以外的车站;第一数据处理单元确定第二车站***的车站数据处理单元处于非主用状态的情况下,将第一数据处理单元更新为第二车站的主用数据处理单元,并根据第二车站的数据信息,对第二车站进行监控;第二车站为N个车站中的任一车站。本发明实施例中,通过第一数据处理单元获取N个车站的数据信息,并将第一数据处理单元作为N个车站的备用数据处理单元,从而实现了在一个数据处理单元中部署多个车站的数据信息,在无需大量追加硬件投入的基础上,实现了多机冗余的效果,从而使得当上述N个车站中的某一车站***的数据处理单元不可用时,第一数据处理单元可更新为该车站的主用数据处理单元,并根据该车站的数据信息,对该车站进行监控,确保监控***的整体可靠性。
本发明实施例中,第一数据处理单元可以为中心数据处理单元或者第一车站***的车站数据处理单元;其中,第一车站为所述M个车站中除将第一数据处理单元作为备用数据处理单元的N个车站以外的车站。
也就是说,情形(1),本发明实施例中可在中心数据处理单元中部署多个车站的数据信息,从而将中心数据处理单元作为该多个车站的备用数据处理单元,当检测到多个车站中的任一车站***的车站数据处理单元出现不可用状态时,中心数据处理单元则可更新为该车站的主用数据处理单元,从而根据获取到的该车站的数据信息实现对该车站的监控。
情形(2),本发明实施例中也可以在车站数据处理单元中部署多个车站的数据信息,从而将车站数据处理单元作为上述多个其它车站的备用数据处理单元,当检测到多个车站中的任一车站的数据处理单元出现不可用状态时,该车站数据处理单元则可更新为出现不可用状态的车站的主用数据处理单元,从而根据获取到的出现不可用状态的车站的数据信息对其进行监控。
本发明实施例的上述两种情形中,支持多机冗余的第一数据处理单元可由多类功能模块组成,具体可包括:消息总线、各个业务处理模块、冗余裁决、内存关系库、冗余数据同步等。
各类功能模块在多机冗余中的职责如下:
消息总线:负责冗余数据同步和冗余裁决过程中所有的计算机节点之间数据通信。
各个业务处理模块:实时数据库***中像模拟量服务、数字量服务、命令处理服务等处理实时数据具体业务的模块。此类模块完成主备冗余状态的切换和主备之间相互的数据同步。
冗余裁决:负责各个业务处理模块的主备状态裁决和各个业务处理模块的主备状态发布。
内存关系库:实现各个业务处理模块的实时数据存储、读取和同步数据的存储、读取;实现冗余数据同步、冗余裁决等功能时底层数据的存储、读取。
冗余数据同步:实现各个业务处理模块之间的数据同步,为主的模块主动将同步数据推送给为备的模块,或者由为备的模块主动向为主的模块拉取同步数据。
本发明实施例中,关于功能模块的介绍仅为一种实现方式,各个功能模块的设计也可结合实际情况进行设置,本发明实施例对此不做具体限定。
本发明实施例中,支持多机冗余的第一数据处理单元中可包括如下基础组件:消息总线、节点管理、内存模型数据库、日志服务、进程管理、双网管理等。下面针对上述基础组件的具体作用和实现方案进行介绍。
(1)消息总线
消息总线为其它组件提供通用的订阅发布式数据传输功能。通过采用对等式结构,提供包括可靠性、时序性,时效性、持久性等多种服务质量,并能够屏蔽底层差异,提供跨平台的通信。其具体实现方案为:
关于通道信息的构成方式:通道信息由态、车站、子***、功能四级构成。一个通道可以传输多种消息类型。“态”是指实时态、研究态、培训态、反演态等,同一态相互通信,不同态不可相互通信,不同态可以使用相同功能通道。
关于初始化流程:消息总线启动,并加载配置信息;定时从双网管理服务获取网络状态信息;定时从进程管理服务获取本节点所有进程的状态信息。
关于本机订阅信息流程:消息总线定时接收本机业务组件的订阅信息,包括组件信息、车站信息和通道信息;消息总线收到订阅信息后,维护本节点进程订阅列表,同时维护本节点订阅的通道信息;消息总线通过组播周期性将心跳信息发送给全***的其它节点,心跳信息包含本节点ID,IP信息,本节点组件订阅的通道信息。
其中,本节点进程订阅列表的形式如下:
通道号订阅进程
200p1,p2
201p1
本节点订阅的通道信息的形式如下:
节点ID订阅通道
100001200,201
关于其它节点订阅信息流程:本机通过组播通道接收其它节点的心跳信息。消息总线收到其它节点的心跳信息后,维护节点的IP地址列表,同时维护全***的节点订阅表:
通道号订阅节点
200node1,node2
201node3
关于数据发布流程:消息总线接收业务组件发布数据信息后,将包含通道号、消息类型、服务质量、业务数据的消息体放入发送缓冲区。分发线程遍历发送缓冲区,解析消息,根据消息所属通道的订阅情况,将消息复制分发到订阅节点的发送缓冲区,如果发生缓冲区满,则优先丢弃低优先级消息;如果该通道无订阅,则丢弃数据;如果本节点订阅了该通道,则将消息放入接收缓冲区,由复制线程将消息复制给订阅组件的接收缓冲区。
各节点发送线程循环遍历发送消息,如果消息过期则丢弃消息。将消息打包流化后发往指定节点。如果发送失败则遍历队列,判断消息的持久***设置,如果是持久服务则保留该消息,否则丢弃。
关于数据接收流程:消息总线接收其它节点发来的消息后,将消息反流化、拆包处理后,放入接收缓冲区。复制线程遍历接收缓冲区,如果消息过期则丢弃该消息,如果消息无订阅,则丢弃,否则根据消息类型的订阅列表将消息复制到各订阅进程接收缓冲区。消息总线接收业务组件获取数据指令后,将对应缓冲区内数据发送给业务进程。检查线程定期遍历缓冲区,丢弃过期数据。
(2)节点管理
节点管理主要起到收集汇总某子***各个节点的运行状态、向关心某些子***状态的组件发布收集的状态信息、在需要裁决时根据收集到的各个节点的运行状态进行冗余裁决。节点管理通过接收本机上的进程管理报告的子***运行状态,并在全***各个节点之间相互发送各自收集到的信息,最终实现全***各个节点的运行状态的汇总功能。在此基础上,针对无主运行或多主运行的子***进行冗余裁决,选举出可用的运行优先级最高的节点升主,对外提供服务。
节点管理的实现方案为:
关于各节点子***状态收集:各个进程在运行期间周期性的向本机的进程管理报告自身运行状态。进程管理将各个子***所属的各个进程状态进行汇总,将汇总后的该子***的状态周期性的向本机的节点管理报告。节点管理获得本机各个子***的运行状态之后进行保存,并将状态信息转发给其他关心该子***状态的其他节点管理。其他节点管理也会转发其收集到的所在节点上的子***运行状态信息。这样,每个节点管理便获得了所有关心的子***运行状态信息。
关于子***状态发布:节点管理作为基础组件,在整个***启动时基础组件首先启动;当其他应用组件启动时,组件内的各个进程通过消息总线向节点管理订阅其关心的子***运行状态信息。当节点管理收集到的子***运行状态信息变化时,会通过消息总线发布给各个关心的进程。进程从消息总线获取子***状态变化信息,根据实际的状态变化做相应的处理。
关于冗余裁决:本发明实施例采用节点管理对各个子***进行冗余裁决,即采用第三方裁决的逻辑,避免了子***本身进行裁决无法客观准确获取整个***状态的缺点。
对于***中的多个节点管理,本提案中采用子***运行优先级最高的节点所在的节点管理进行裁决,因为子***运行优先级是组态静态信息,有效避免了裁决主机运行态动态判断处理复杂容易产生误判的问题。为了避免遗漏裁决时机,本提案设计为每当***中有子***运行状态变化时,便进行裁决。
裁决的原则设计为:若***当前无主运行,则选举可用的运行优先级最高的主机作为主;若***当前出现多个主,则选举多个主中运行优先级最高的主机作为主,其他降为备运行。
关于裁决结束的处理:在每一轮切换执行之前,都设置一个裁决切换预期执行结果,在切换过程中不断检测***当前运行状态是否与预期切换结果一致,如果一致则认为本轮裁决结束。当然也存在本轮裁决不可能成功结束的情况,比如裁决升主的主机在升主过程中网络断开了,***保证在确认升主的主机不可能升主之后,本轮裁决提前结束,进行下一轮裁决,重新选主。
关于裁决结果发布:裁决执行的结果会引起某个或某些子***运行状态的变化,节点管理负责将这些变化的状态信息发布给关心的进程,实现了裁决结果的发布。
(3)进程管理
进程管理服务主要起到管理***中各个进程的状态和访问信息的功能。需要接受管理的进程启动时都应该向进程管理注册,在运行时周期性的向进程管理服务报告状态。进程管理服务在检测到进程异常退出时,应在一定周期内,将进程重新启动起来。
进程管理的实现方案为:
关于进程信息的获取:进程管理和各个进程之间的信息交互是通过共享内存表实现的,各个进程正常启动之后会向进程信息表中***一条记录,并在后期运行过程中,不断的更新此条记录,已表明自己正在正常工作。进程管理访问表中的各条数据,便获得了各个进程的运行状态。
关于进程信息的汇总和报告:进程管理在获得了各个进程的运行信息后,会根据配置信息,将各个进程的状态进行分类汇总,汇总成子***级别的运行状态,以便于向节点管理报告。报告时是通过共享内存表实现的。
关于双网状态监测:进程管理负责对双网的状态进行检测,在向节点管理报告子***状态时,进程管理首先访问双网信息共享内存表获取本机双网状态,并将双网信息报告给节点管理。在进程管理检测到本机双网都不用时,会将本机的所有子***运行状态设置为不可用。
进程管理承担了对于本机运行的各个进程进行监护的职责,当检测到某个进程在几个心跳周期内未正常报告状态,则检查该进程是否存在(通过进程Id判断),若该进程不存在了,进程管理负责将该进程启动起来。
(4)双网管理
双网管理为基础组件,进行网络状况监测,为本节点组件提供本机的IP及网络状况信息。
双网管理的具体实现方案为:
服务启动后获取本机的IP地址列表,如果无法获取则不能正常启动。根据本机IP地址列表及节点配置表查找各网卡对应的检测IP。服务定时往检测IP发送ping信息,如果连续几个周期信息丢失,则认为对应网络异常。将网络检测结果信息发布供其它进程使用。
(5)日志服务
日志管理就是对日志数据进行采集、汇聚、存储、归档和分析的手段,主要由硬件、软件和网络设备等组成。***的日志管理对于***安全稳定非常重要,它记录了***每日发生的各种各样的事情,可以通过日志来检查错误发生的原因,另外也可以通过日志了解***运行的状况,从而能够及时采取有针对性的防范措施,排除和防止***故障的发生。
本发明实施例中的日志服务支持多个本地日志客户端同时写入日志,由日志服务进行归档,并通过关键字进行区分。
(6)各个业务处理模块
实时数据库***中像模拟量服务、数字量服务、命令处理服务等处理实时数据具体业务的模块。此类模块完成主备冗余状态的切换和主备之间相互的数据同步。此类模块在服务器上为每一个车站运行一个进程主要是因为分子***运行,实现故障隔离。
(7)内存关系库
实现各个业务处理模块的实时数据存储、读取和同步数据的存储、读取。实现上述双网管理、进程管理、节点管理等功能模块底层数据的存储、读取;
本发明实施例中的内存关系库可以采用开源的项目实现,在此不再进行详细描述。
进一步地,上述情形(1)和情形(2),均说明了可在一个数据处理单元中部署多个车站的数据信息。实际应用过程中,当在一个数据处理单元中部署多个车站的数据信息时,需要该数据处理单元具有较为强大的处理能力,且部署的车站的数据信息越多,对数据处理单元的处理能力的要求也高。由于中心管理***中的中心数据处理单元的处理能力大于车站***中的车站数据处理单元的能力,因此,当中心管理***控制下的车站个数不是很多的情况下,可在中心数据处理单元中部署中心管理***控制下的多个车站的数据信息,从而将中心数据处理单元作为中心管理***控制下的多个车站的备用数据处理单元。
为进一步降低中心数据处理单元的处理负担,本发明实施例基于情形(2)提出一种在车站***的数据处理单元中部署相邻车站的数据信息的方法。
下面结合具体实施例对在车站***的数据处理单元中部署相邻车站的数据信息的方法进行介绍。
例如,假设轨道交通综合监控***中包括一个中心管理***、车站***A、车站***B、车站***C以及车站***D,其中,车站***A、车站***B、车站***C以及车站***D中设置有A车站数据处理单元、B车站数据处理单元、C车站数据处理单元以及D车站数据处理单元。车站A、车站B、车站C以及车站D互为相邻车站。此时,本发明实施例进行如下设置:在A车站数据处理单元中部署B车站的数据信息,即将A车站数据处理单元设置为B车站数据处理单元的备用数据处理单元;在B车站数据处理单元中部署C车站的数据信息,即将B车站数据处理单元设置为C车站数据处理单元的备用数据处理单元;在C车站数据处理单元中部署D车站的数据信息,即将C车站数据处理单元设置为D车站数据处理单元的备用数据处理单元;在D车站数据处理单元中部署A车站的数据信息,即将D车站数据处理单元设置为A车站数据处理单元的备用数据处理单元。采用上述方式,在一个车站数据管理单元中部署另一车站的数据信息,从而使得各个车站***的车站数据处理单元均可成为另一车站的备用数据处理单元,增强了***的安全性和稳定性。且,相对于在一个车站数据处理单元中部署多个车站的数据信息的实现方式来说,上述方式均衡使用各个车站***的车站数据处理单元,避免出现部署多个车站的数据信息的车站数据处理单元处理负担过大的问题。
需要说明的是,本发明实施例中也可在车站***的车站数据处理单元中部署非相邻车站的数据信息,即可以将一个车站***的备用数据处理单元,部署到该车站***以外的其它任一车站***中。
为进一步减少设计的复杂度,本发明实施例中优选在车站***的数据处理单元中部署相邻车站的数据信息。
本发明实施例中,在车站数据处理单元的处理能力达到相应要求的前提下,为进一步提高***的安全性和稳定性,可在上述架构的基础上,进一步设置多个备用数据处理单元。仍以上述实施例为例,例如,可在A车站数据处理单元和C车站数据处理单元中均部署B车站的数据信息,即将A车站数据处理单元和C车站数据处理单元均作为B车站数据处理单元的备用数据处理单元。也就是说,本发明实施例中,可为各个车站设置多个备用数据处理单元,具体个数可依实际情况而定,本发明实施例对此不做限定。
本发明实施例中,由于第一数据处理单元为所述N个车站的备用数据处理单元,因此,第一数据处理单元中关于所述N个车站的数据信息应与所述N个车站数据处理单元中的数据信息保持同步。本发明实施例基于以下两方面的技术手段来实现数据同步:
(1)底层基于表的数据同步机制:将实时数据、顺控、联动等需要同步的业务模块,其同步的内容设计为内存表的方式,同步机制设计为基于这些表的通用逻辑,实现冗余数据同步的通用性。
(2)采用推拉结合的方式,实现数据的周期整表同步和数据的最终一致性:备机在上线时和运行过程中,周期性地向主机拉取整表数据,同时主机会将需要同步的增量数据发布给订阅的备机。备机将拉取的断面数据和主机发布的增量数据进行整合,作用于本地的同步数据表。
测点实时数据包含测点的值、时间戳、质量戳、变位次数等各个实时属性。下面主要以模拟量测点实时数据的处理为例,说明测点实时数据的同步方案。本发明实施例中,由于数据同步采用的是订阅发布逻辑,所以不管有多少个冗余备机,处理逻辑都是一致的。也就是说,采用本发明实施例中的方法,可不对冗余备机的个数进行限制。
具体地,在步骤101中,第一数据处理单元首先向将所述第一数据处理单元作为备用数据处理单元的N个车站***的车站数据处理单元发送增量请求消息,并接收所述N个车站***的车站数据处理单元根据所述增量请求消息发送的增量数据。在随后的时间内,第一数据处理单元按照设定周期向所述N个车站数据处理单元发送整表请求消息,并接收所述N个车站***的车站数据处理单元根据所述整表请求消息返回的整表数据;或者,第一数据处理单元无需发送整表请求消息,直接接收由N个车站***的车站数据处理单元按照设定周期返回的整表数据。
本发明实施例中的增量请求消息可以为增量数据的订阅请求。
可选地,本发明实施例中,第一数据处理单元也可以不定期向所述N个车站数据处理单元发送整表请求消息,并接收所述N个车站***的车站数据处理单元根据所述整表请求消息返回的整表数据;或者,第一数据处理单元无需发送整表请求消息,直接接收由N个车站***的车站数据处理单元不定期返回的整表数据。
下面具体介绍多机冗余中数据同步的具体方案。其中,主机可为所述N个车站数据处理单元中的任一个,备机可为所述第一数据处理单元。
针对于同步处理,内存表中每一行数据增加一个数据列“是否更新”,内容为本行数据是否被更改过,任何进程修改本行数据时将此列数据置为真,冗余同步单元将此行数据获取并转化成同步数据之后,将此列数据置为假。
关于为主的模拟量处理进程处理流程:自身的冗余状态从本机节点管理产生的裁决信息中获取。接收到采集上传的实时数据,在实时值处理单元进行实时值的处理。将处理的结果调用内存库处理单元封装的API,写入内存库。内存库将结果作用到本地测点数据内存表,并将所写的每一行数据的“是否更新”字段更新为真。冗余同步单元周期性的扫描测点数据内存表,将“是否更新”字段为真的数据行获取出来并生成相应的同步数据,同时将“是否更新”字段更新为假,调用消息通道的相应接口将同步数据发布给各个备机。
关于为备的模拟量处理进程处理流程:自身的冗余状态从本机节点管理产生的裁决信息中获取。备机上线时,冗余同步单元首先订阅主机的同步数据订阅发布通道。然后,冗余同步单元向为主的内存数据库服务获取断面数据。冗余同步单元发出获取断面数据请求之后,便将之后接收到的增量数据做缓存处理,不再实时将增量数据作用于内存表。在获取到断面数据之后,将现有的内存表待同步数据清空,然后将断面数据装入内存表。最后将已经收到的增量数据作用于新的断面数据。此后,在收到增量数据之后,便直接将增量数据直接作用到本地测点数据内存表。
备机正常运行过程中,周期性的向主获取断面数据,以保证同步数据的最终一致性。断面数据同增量数据的配合与备机上线的处理一致。
图2为本发明实施例中主机和备机的数据同步过程示意图。
下面结合图2对本发明实施例中主机和备机的数据同步过程进行具体说明。其中,主机可为所述N个车站数据处理单元中的任一个,备机可为所述第一数据处理单元。
如图2所示,备机上线时,先向主机订阅增量同步数据;主机接收到备机的增量同步数据订阅之后,向备机发布增量同步数据;备机接收到主机发来的增量同步数据之后,将其缓存到同步缓冲区;备机设置整表同步标志为真;备机向主机拉取整表同步数据;主机将整表同步数据发送给备机;备机接收到整表同步数据之后,首先将本身业务模块的内存表清空,然后将整表同步数据全部作用到业务模块的内存表中;备机设置整表同步标志为假;在备机处理整表数据同步的过程中,备机可能不断收到来自主机的增量同步数据,备机在处理完整表数据之后,将所有收到的增量同步数据从头到尾全部作用到业务模块的内存表中;此时备机便获得了主机此时刻的一个断面。
后续,备机不断接收到并实时处理主机发送来的增量同步数据,便完成了冗余主备机的一个实时同步。
本发明实施例中,第一数据处理单元首先向将所述第一数据处理单元作为备用数据处理单元的N个车站数据处理单元发送增量请求消息,并接收所述N个车站数据处理单元根据所述增量请求消息发送的增量数据,后续获取整表数据,从而避免了在同步整表数据过程中,出现有些增量数据未及时同步的问题,更好地实现了备机与主机之间的数据同步。另一方面,本发明实施例中,可按照设定周期获取整表数据,从而避免在增量数据的更新过程中,造成备机与主机的配合不完全一致,使得主机和备机之间的数据瞬时甚至永久的不一致,而导致在冗余切换时对***造成不同程度冲击的问题。
本发明实施例中的非主用状态可以为备用状态或者不可用状态。
为进一步保证数据同步,针对于采用手动切换的情形(即将第二车站***的车站数据处理单元由主用状态手动切换为备用状态),具体的处理过程如下:
第一数据处理单元接收第二车站***的车站数据处理单元发送的通知消息;该通知消息为第二车站***的车站数据处理单元在接收到由主用状态切换为备用状态的切换命令后发送的;该通知消息中包括第二车站***的车站数据处理单元的增量数据和第二车站***的车站数据处理单元的切换后的状态信息;第一数据处理单元接收到通知消息后,根据第二车站***的车站数据处理单元切换后的状态信息,确定第二车站***的车站数据处理单元切换后的状态为备用状态的情况下,将第一数据处理单元更新为第二车站的主用数据处理单元。
具体地,上述过程中,在第二车站***的车站数据处理单元处于主用状态的情况下,若接收到从当前主用状态切换为备用状态的切换命令,则此时,第二车站***的车站数据处理单元将停止对第二车站的数据信息进行更新,并在接收到切换命令前已经更新的数据信息通过通知消息发送给第一数据处理单元。第一数据处理单元接收到通知消息后,确定第二车站***的车站数据处理单元由主用状态切换为备用状态后,将第一数据处理单元更新为所述第二车站的主用数据处理单元。本发明实施例中,第二车站***的车站数据处理单元接收到切换命令后,停止对数据信息的更新,并及时将已更新的数据信息发送给第一数据处理单元(备用数据处理单元),从而使得第二车站***的车站数据处理单元的数据信息均同步到第一数据处理单元中,保证了在冗余切换过程中数据信息的一致性。
图3为本发明实施例中手动切换与数据同步的实现过程示意图。下面结合图3具体介绍本发明实施例中手动切换与数据同步的配合方案。
备机上线时,通过本地的节点管理可以获得整个***当前是否有为主的计算机运行:若有为主的计算机运行,则为备的计算机需完成整表同步之后再升备(以备的状态向节点管理报告状态);若无为主的计算机运行,则为备的计算机直接升备,预备被裁决为主运行。
如图3所示,节点管理接收到手动切换命令之后,将当前冗余主机的“切换中”标志设置为真;为了保证在规定时间内完成切换,在整个切换期间,***不再接收外部调用;主机调用所有业务模块的冗余切换接口,进行冗余切换;主机上的同步单位处理为:发布所有的增量同步数据;停止同步发送线程;启动同步接收线程;在主机上所有业务模块都完成切换之后,向节点管理报告自己的状态变为备;节点管理调用备机的冗余切换接口,使备机切换为主,完成整个手动切换的操作。
本发明实施例中,针对故障切换(即数据处理单元由主用状态变为不可用状态)的情形,由于冗余同步单元周期性的扫描并发布同步数据,所以在此周期内若发生故障切换,则会造成部分数据的同步丢失。针对此类问题,可以根据业务特点,允许业务设置同步周期,对于同步要求高的业务,通过设置为较小同步周期以减小同步数据丢失的副作用。
相对于故障切换的突发性,本发明实施例中,针对于手动切换的处理方式为:主机在切换为备机之前,触发一次数据同步,以保证备机为主时处理的同步数据都已发布给备机。备机切换为主机之前,将接收缓冲区内的所有同步数据处理完,以保证完成了数据同步。因此,在手动切换的情况下,同步数据丢失的概率更低。
本发明实施例中,若第二车站还包括除所述第一数据处理单元以外的备用数据处理单元,则在进行冗余切换的过程中,各个备用的数据处理单元需要进行主用优先级的比较,以确定将哪个备用数据处理单元作为第二车站的主用数据单元。
具体地,假设第二车站的备用数据处理单元包括数据处理单元X、数据处理单元Y、数据处理单元Z,其中,数据处理单元X的主用优先级为级别1、数据处理单元Y的主用优先级为级别2、数据处理单元Z的主用优先级为级别3,其中,级别1>级别2>级别3,级别1为最高优先级。当第二车站数据处理单元由主用状态切换为备用状态时,数据处理单元X、数据处理单元Y、数据处理单元Z同时检测到第二车站数据处理单元的切换状态,数据处理单元X、数据处理单元Y、数据处理单元Z均获取自身的主用优先级以及除自身外其他备用数据处理单元的优先级。以数据处理单元X的处理过程为例,数据处理单元X在获取到自身的主用优先级及数据处理单元Y和数据处理单元Z的主用优先级后,确定自身的主用优先级为最高,则将数据处理单元X更新为第二车站的主用数据单元。
进一步地,若数据处理单元X在更新为第二车站的主用数据单元过程中,更新失败,则此时,数据处理单元Y可通过主用优先级的判断后,确定在剩下的备用数据单元中其主用优先级为最高,则可将数据处理单元Y更新为第二车站的主用数据单元。
本发明实施例中,若第二车站还包括除所述第一数据处理单元以外的备用数据处理单元,则可将一些进程在第二车站的备用数据处理单元中为主进程进行处理,在第二车站的主用数据处理单元中为从进程,从而降低第二车站的主用数据处理单元的处理负担。
具体地,第一数据处理单元接收第二车站***的车站数据处理单元及除第一数据处理单元以外的备用数据处理单元发送的组播消息;组播消息中包括第二车站***的车站数据处理单元及除第一数据处理单元以外的备用数据处理单元处理第一进程的优先级;第一进程为第二车站***待处理的进程;第一数据处理单元获取自身处理第一进程的优先级,并将自身处理第一进程的优先级与第二车站***的车站数据处理单元及除第一数据处理单元以外的备用数据处理单元处理第一进程的优先级进行比较,在确定自身处理第一进程的优先级最高的情况下,对第一进程进行处理,并将处理结果至少反馈给第二车站的主用数据处理单元。
本发明实施例中,各个数据处理单元处理第一进程的优先级可预先设置。
下面结合具体实施例对上述过程进行说明。
例如,第一数据处理单元为数据处理单元X,第二车站***的车站数据处理单元为数据处理单元Y,第二车站除所述第一数据处理单元以外的备用数据处理单元为数据处理单元Z。其中,数据处理单元X处理第一进程的优先级为级别1,数据处理单元Y处理第一进程的优先级为级别2,数据处理单元Z处理第一进程的优先级为级别3,其中,级别1>级别2>级别3,级别1为最高优先级。数据处理单元X、数据处理单元Y、数据处理单元Z之间可互相接收组播消息,针对于数据处理单元X来说,当接收到数据处理单元Y和数据处理单元Z处理第一进行的优先级后,确认自身的优先级为最高,则将第一进程作为主进程,相应地,数据处理单元Y接收到数据处理单元X和数据处理单元Z处理第一进程的优先级后,确认数据处理单元X处理第一进程的优先级高于自身的优先级,则将第一进程作为从进程,数据处理单元Z接收到数据处理单元X和数据处理单元Y处理第一进程的优先级后,确认数据处理单元X和数据处理单元Y处理第一进程的优先级均高于自身的优先级,于是也将第一进程作为从进程。
随后,数据处理单元X对第一进程进行处理,并将处理结果至少反馈给第二车站的主用数据处理单元。此时,若数据处理单元X更新为第二车站的主用数据处理单元,则可将第一进程的处理结果作为增量数据发送给各个备用数据处理单元即可;若数据处理单元X仍然为第二车站的备用数据处理单元,则可将第一进程的处理结果反馈给第二车站的主用数据处理单元,从而使得第二车站的主用数据处理单元将该处理结果作为增量数据反馈给其它各个备用数据处理单元。或者,本发明实施例中,数据处理单元X也可以直接将第一进程的处理结果反馈给将第一进程作为从进程的数据处理单元Y和数据处理单元Z。
进一步地,本发明实施例还可支持进程的手动切换。下面结合具体实施例来说明关于手动切换主进程的处理过程。
具体地,所述第一数据处理单元接收到将第一进程设置为主进程的切换命令后,将所述第一数据处理单元中的所述第一进程设置为主进程,并向所述第二车站***的车站数据处理单元及所述除所述第一数据处理单元以外的备用数据处理单元发送通知消息,以使所述第二车站***的车站数据处理单元及所述除所述第一数据处理单元以外的备用数据处理单元根据所述通知消息将所述第一进程设置为从进程。
例如,仍以上述实施例中的数据处理单元X、数据处理单元Y和数据处理单元Z为例。数据处理单元X处理第一进程的优先级为级别1,数据处理单元Y处理第一进程的优先级为级别2,数据处理单元Z处理第一进程的优先级为级别3,其中,级别1>级别2>级别3,级别1为最高优先级。在上述三个数据处理单元根据优先级确定主进程的过程中,若数据处理单元X因存在故障或其它原因而未能及时向数据处理单元Y和数据处理单元Z发送组播消息,以告知数据处理单元Y和数据处理单元Z其处理第一进程的优先级。此时,数据处理单元Y仅接收到数据处理单元Z处理第一进程的优先级,数据处理单元Y通过比较,判断出自身处理第一进程的优先级高于数据处理单元Z的优先级,于是确定在数据处理单元Y中将第一进程作为主进程进行处理。数据处理单元Z仅接收到数据处理单元Y处理第一进程的优先级,数据处理单元Z通过比较,判断出自身处理第一进程的优先级低于数据处理单元Y的优先级,于是确定在数据处理单元Z中将第一进程作为从进程。
后续,在数据处理单元X排除故障恢复正常后,由于其处理第一进程的优先级高于数据处理单元Y和数据处理单元Z的优先级,此时可通过手动切换的方式在数据处理单元X中将第一进程作为主进程进行处理。具体地,可向数据处理单元X发送切换命令,数据处理单元X在接收到切换命令后,将第一进程作为主进程进行处理,并向数据处理单元Y和数据处理单元Z发送数据处理单元X中的第一进程为主进程的通知消息,数据处理单元Y在接收到该通知消息后,将数据处理单元Y中的第一进程设置为从进程,并等待接收第一进程的处理结果;数据处理单元Z在接收到该通知消息后,仍保持数据处理单元Z中的第一进程为从进程,并等待接收第一进程的处理结果。
本发明实施例中,针对于不同的进程,各个数据处理单元的优先级也可以不相同,例如,针对于第二进程,可设置数据处理单元X处理第二进程的优先级为级别3,数据处理单元Y处理第二进程的优先级为级别1,数据处理单元Z处理第二进程的优先级为级别2。从而实现了在不同的数据处理单元中进行不同进程的处理,均衡使用各个数据处理单元的资源,降低将多个进程均在一个数据处理单元中进行处理的负担,有效提高进程处理的效率。
本发明实施例中,可以为第二车站设置多个备用数据处理单元,具体备用数据单元的个数可依据实际情况进行设置,即采用本发明实施例的方法,对冗余节点的个数没有限制,从而可实现将所有的车站按照优先级都配置成冗余节点,若需要调整冗余节点,则将不需要的节点的相应数据处理单元统不启动或不部署此冗余节点的数据即可,而不需要对已有的数据进行任何修改,便于数据的版本管理和减少对现有运行***的冲击。
进一步地,本发明实施例中的多机冗余裁决算法设计为:仅对于运行状态中的优先级最高的三个数据处理单元进行裁决,对其他冗余备机的状态只进行记录,而不参与裁决过程。通过这样的设计方式,能够有效提高裁决的性能,使冗余切换的性能指标满足要求。且,即使存在多余配置的冗余节点,也并不影响冗余裁决,仅在有需要时,将优先级较高的节点进行关闭或手动切换,进而将配置的冗余节点升为主机。
本发明的上述实施例中,提供一种采用多机冗余方式对车站进行监控的方法,应用于轨道交通监控***,该***包括:中心管理***以及中心管理***控制下的M个车站***,M≥1,中心管理***中设置有中心数据处理单元,车站***中设置有车站数据处理单元;该方法包括:第一数据处理单元获取将第一数据处理单元作为备用数据处理单元的N个车站的数据信息;第一数据处理单元为中心数据处理单元或者第一车站***的车站数据处理单元;第一车站为N个车站以外的车站;第一数据处理单元确定第二车站***的车站数据处理单元处于非主用状态的情况下,将第一数据处理单元更新为第二车站的主用数据处理单元,并根据第二车站的数据信息,对第二车站进行监控;第二车站为N个车站中的任一车站。本发明实施例中,通过第一数据处理单元获取N个车站的数据信息,并将第一数据处理单元作为N个车站的备用数据处理单元,从而实现了在一个数据处理单元中部署多个车站的数据信息,在无需大量追加硬件投入的基础上,实现了多机冗余的效果,从而使得当上述N个车站中的某一车站***的数据处理单元不可用时,第一数据处理单元可更新为该车站的主用数据处理单元,并根据该车站的数据信息,对该车站进行监控,确保监控***的整体可靠性。
针对上述方法流程,本发明实施例还提供一种采用多机冗余方式对车站进行监控的装置,该装置的具体内容可以参照上述方法实施。
图4为本发明实施例提供的一种采用多机冗余方式对车站进行监控的装置的结构示意图,该装置应用于轨道交通监控***,所述轨道交通监控***包括:中心管理***以及所述中心管理***控制下的M个车站***,M≥1,所述中心管理***中设置有中心数据处理单元,所述车站***中设置有车站数据处理单元;该装置包括:
获取模块401,用于获取将第一数据处理单元作为备用数据处理单元的N个车站的数据信息;所述第一数据处理单元为所述中心数据处理单元或者所述第一车站***的车站数据处理单元;其中,1≤N≤M;所述N个车站为M个车站中的任意N个车站;第一车站为M个车站中的除所述N个车站以外的车站;
处理模块402,用于确定第二车站***的车站数据处理单元处于非主用状态的情况下,将所述第一数据处理单元更新为所述第二车站的主用数据处理单元;所述第二车站为所述N个车站中的任一车站;
监控模块403,用于根据所述第二车站的数据信息,对所述第二车站进行监控。
较佳地,所述获取模块401具体用于:
向将所述第一数据处理单元作为备用数据处理单元的N个车站***的车站数据处理单元发送增量请求消息;
接收所述N个车站***的车站数据处理单元根据所述增量请求消息发送的增量数据。
较佳地,所述获取模块401还用于:
按照设定周期向所述N个车站***的车站数据处理单元发送整表请求消息;接收所述N个车站***的车站数据处理单元根据所述整表请求消息返回的整表数据;或者,
按照设定周期接收所述N个车站***的车站数据处理单元返回的整表数据。
较佳地,所述非主用状态为备用状态;
所述处理模块402具体用于:
接收所述第二车站***的车站数据处理单元发送的通知消息;所述通知消息为所述第二车站***的车站数据处理单元在接收到由主用状态切换为备用状态的切换命令后发送的;所述通知消息中包括所述第二车站***的车站数据处理单元的增量数据和所述第二车站***的车站数据处理单元的切换后的状态信息;
根据所述第二车站***的车站数据处理单元切换后的状态信息,确定所述第二车站***的车站数据处理单元切换后的状态为备用状态的情况下,将所述第一数据处理单元更新为所述第二车站的主用数据处理单元。
较佳地,所述第二车站还包括除所述第一数据处理单元以外的备用数据处理单元;
所述处理模块402还用于:
接收所述第二车站***的车站数据处理单元及所述除所述第一数据处理单元以外的备用数据处理单元发送的组播消息;所述组播消息中包括所述第二车站***的车站数据处理单元及所述除所述第一数据处理单元以外的备用数据处理单元处理第一进程的优先级;所述第一进程为所述第二车站***待处理的进程;
获取自身处理所述第一进程的优先级;
将自身处理所述第一进程的优先级与所述第二车站***的车站数据处理单元及所述除所述第一数据处理单元以外的备用数据处理单元处理所述第一进程的优先级进行比较,在确定自身处理所述第一进程的优先级最高的情况下,将所述第一进程进行处理,并将处理结果至少反馈给第二车站的主用数据处理单元。
较佳地,所述第二车站还包括除所述第一数据处理单元以外的备用数据处理单元;
所述处理模块402具体用于:
确定第二车站***的数据处理单元处于非主用状态,且,所述第一数据处理单元的主用优先级高于所述除所述第一数据处理单元以外的备用数据处理单元的情况下,将所述第一数据处理单元更新为所述第二车站的主用数据处理单元。
较佳地,所述第二车站还包括除所述第一数据处理单元以外的备用数据处理单元;
该方法还包括:
所述第一数据处理单元接收将第一进程设置为主进程的切换命令;
所述第一数据处理单元将所述第一数据处理单元中的所述第一进程设置为主进程,并向所述第二车站***的车站数据处理单元及所述除所述第一数据处理单元以外的备用数据处理单元发送通知消息,以使所述第二车站***的车站数据处理单元及所述除所述第一数据处理单元以外的备用数据处理单元根据所述通知消息将所述第一进程设置为从进程。
从上述内容可以看出:本发明实施例提供一种采用多机冗余方式对车站进行监控的方法,应用于轨道交通监控***,该***包括:中心管理***以及中心管理***控制下的M个车站***,M≥1,中心管理***中设置有中心数据处理单元,车站***中设置有车站数据处理单元;该方法包括:第一数据处理单元获取将第一数据处理单元作为备用数据处理单元的N个车站的数据信息;第一数据处理单元为中心数据处理单元或者第一车站***的车站数据处理单元;第一车站为N个车站以外的车站;第一数据处理单元确定第二车站***的车站数据处理单元处于非主用状态的情况下,将第一数据处理单元更新为第二车站的主用数据处理单元,并根据第二车站的数据信息,对第二车站进行监控;第二车站为N个车站中的任一车站。本发明实施例中,通过第一数据处理单元获取N个车站的数据信息,并将第一数据处理单元作为N个车站的备用数据处理单元,从而实现了在一个数据处理单元中部署多个车站的数据信息,在无需大量追加硬件投入的基础上,实现了多机冗余的效果,从而使得当上述N个车站中的某一车站***的数据处理单元不可用时,第一数据处理单元可更新为该车站的主用数据处理单元,并根据该车站的数据信息,对该车站进行监控,确保监控***的整体可靠性。
本领域内的技术人员应明白,本发明的实施例可提供为方法、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(***)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。
Claims (14)
1.一种采用多机冗余方式对车站进行监控的方法,其特征在于,应用于轨道交通监控***,所述轨道交通监控***包括:中心管理***以及所述中心管理***控制下的M个车站***,M≥1,所述中心管理***中设置有中心数据处理单元,所述车站***中设置有车站数据处理单元;该方法包括:
第一数据处理单元获取将所述第一数据处理单元作为备用数据处理单元的N个车站的数据信息;所述第一数据处理单元为所述中心数据处理单元或者所述第一车站***的车站数据处理单元;其中,1≤N≤M;所述N个车站为M个车站中的任意N个车站;第一车站为M个车站中的除所述N个车站以外的车站;
所述第一数据处理单元确定第二车站***的车站数据处理单元处于非主用状态的情况下,将所述第一数据处理单元更新为所述第二车站的主用数据处理单元;所述第二车站为所述N个车站中的任一车站;
所述第一数据处理单元根据所述第二车站的数据信息,对所述第二车站进行监控。
2.如权利要求1所述的方法,其特征在于,所述第一数据处理单元获取将所述第一数据处理单元作为备用数据处理单元的N个车站的数据信息,包括:
所述第一数据处理单元向将所述第一数据处理单元作为备用数据处理单元的N个车站***的车站数据处理单元发送增量请求消息;
所述第一数据处理单元接收所述N个车站***的车站数据处理单元根据所述增量请求消息发送的增量数据。
3.如权利要求2所述的方法,其特征在于,所述第一数据处理单元向将所述第一数据处理单元作为备用数据处理单元的N个车站***的车站数据处理单元发送增量请求消息之后,还包括:
所述第一数据处理单元按照设定周期向所述N个车站***的车站数据处理单元发送整表请求消息;所述第一数据处理单元接收所述N个车站***的车站数据处理单元根据所述整表请求消息返回的整表数据;或者,
所述第一数据处理单元按照设定周期接收所述N个车站***的车站数据处理单元返回的整表数据。
4.如权利要求1所述的方法,其特征在于,所述非主用状态为备用状态;
所述第一数据处理单元确定第二车站***的车站数据处理单元处于非主用状态的情况下,将所述第一数据处理单元更新为所述第二车站的主用数据处理单元,包括:
所述第一数据处理单元接收所述第二车站***的车站数据处理单元发送的通知消息;所述通知消息为所述第二车站***的车站数据处理单元在接收到由主用状态切换为备用状态的切换命令后发送的;所述通知消息中包括所述第二车站***的车站数据处理单元的增量数据和所述第二车站***的车站数据处理单元的切换后的状态信息;
所述第一数据处理单元根据所述第二车站***的车站数据处理单元切换后的状态信息,确定所述第二车站***的车站数据处理单元切换后的状态为备用状态的情况下,将所述第一数据处理单元更新为所述第二车站的主用数据处理单元。
5.如权利要求1所述的方法,其特征在于,所述第二车站还包括除所述第一数据处理单元以外的备用数据处理单元;
该方法还包括:
所述第一数据处理单元接收所述第二车站***的车站数据处理单元及所述除所述第一数据处理单元以外的备用数据处理单元发送的组播消息;所述组播消息中包括所述第二车站***的车站数据处理单元及所述除所述第一数据处理单元以外的备用数据处理单元处理第一进程的优先级;所述第一进程为所述第二车站***待处理的进程;
所述第一数据处理单元获取自身处理所述第一进程的优先级;
所述第一数据处理单元将自身处理所述第一进程的优先级与所述第二车站***的车站数据处理单元及所述除所述第一数据处理单元以外的备用数据处理单元处理所述第一进程的优先级进行比较,在确定自身处理所述第一进程的优先级最高的情况下,对所述第一进程进行处理,并将处理结果至少反馈给第二车站的主用数据处理单元。
6.如权利要求1所述的方法,其特征在于,所述第二车站还包括除所述第一数据处理单元以外的备用数据处理单元;
该方法还包括:
所述第一数据处理单元接收将第一进程设置为主进程的切换命令;
所述第一数据处理单元将所述第一数据处理单元中的所述第一进程设置为主进程,并向所述第二车站***的车站数据处理单元及所述除所述第一数据处理单元以外的备用数据处理单元发送通知消息,以使所述第二车站***的车站数据处理单元及所述除所述第一数据处理单元以外的备用数据处理单元根据所述通知消息将所述第一进程设置为从进程。
7.如权利要求1所述的方法,其特征在于,所述第二车站还包括除所述第一数据处理单元以外的备用数据处理单元;
所述第一数据处理单元确定第二车站***的数据数据处理单元处于非主用状态的情况下,将所述第一数据处理单元更新为所述第二车站的主用数据处理单元,包括:
所述第一数据处理单元确定第二车站***的数据处理单元处于非主用状态,且,所述第一数据处理单元的主用优先级高于所述除所述第一数据处理单元以外的备用数据处理单元的情况下,将所述第一数据处理单元更新为所述第二车站的主用数据处理单元。
8.一种采用多机冗余方式对车站进行监控的装置,其特征在于,该装置应用于轨道交通监控***,所述轨道交通监控***包括:中心管理***以及所述中心管理***控制下的M个车站***,M≥1,所述中心管理***中设置有中心数据处理单元,所述车站***中设置有车站数据处理单元;该装置包括:
获取模块,用于获取将第一数据处理单元作为备用数据处理单元的N个车站的数据信息;所述第一数据处理单元为所述中心数据处理单元或者所述第一车站***的车站数据处理单元;其中,1≤N≤M;所述N个车站为M个车站中的任意N个车站;第一车站为M个车站中的除所述N个车站以外的车站;
处理模块,用于确定第二车站***的车站数据处理单元处于非主用状态的情况下,将所述第一数据处理单元更新为所述第二车站的主用数据处理单元;所述第二车站为所述N个车站中的任一车站;
监控模块,用于根据所述第二车站的数据信息,对所述第二车站进行监控。
9.如权利要求8所述的装置,其特征在于,所述获取模块具体用于:
向将所述第一数据处理单元作为备用数据处理单元的N个车站***的车站数据处理单元发送增量请求消息;
接收所述N个车站***的车站数据处理单元根据所述增量请求消息发送的增量数据。
10.如权利要求9所述的装置,其特征在于,所述获取模块还用于:
按照设定周期向所述N个车站***的车站数据处理单元发送整表请求消息;接收所述N个车站***的车站数据处理单元根据所述整表请求消息返回的整表数据;或者,
按照设定周期接收所述N个车站***的车站数据处理单元返回的整表数据。
11.如权利要求8所述的装置,其特征在于,所述非主用状态为备用状态;
所述处理模块具体用于:
接收所述第二车站***的车站数据处理单元发送的通知消息;所述通知消息为所述第二车站***的车站数据处理单元在接收到由主用状态切换为备用状态的切换命令后发送的;所述通知消息中包括所述第二车站***的车站数据处理单元的增量数据和所述第二车站***的车站数据处理单元的切换后的状态信息;
根据所述第二车站***的车站数据处理单元切换后的状态信息,确定所述第二车站***的车站数据处理单元切换后的状态为备用状态的情况下,将所述第一数据处理单元更新为所述第二车站的主用数据处理单元。
12.如权利要求8所述的装置,其特征在于,所述第二车站还包括除所述第一数据处理单元以外的备用数据处理单元;
所述处理模块还用于:
接收所述第二车站***的车站数据处理单元及所述除所述第一数据处理单元以外的备用数据处理单元发送的组播消息;所述组播消息中包括所述第二车站***的车站数据处理单元及所述除所述第一数据处理单元以外的备用数据处理单元处理第一进程的优先级;所述第一进程为所述第二车站***待处理的进程;
获取自身处理所述第一进程的优先级;
将自身处理所述第一进程的优先级与所述第二车站***的车站数据处理单元及所述除所述第一数据处理单元以外的备用数据处理单元处理所述第一进程的优先级进行比较,在确定自身处理所述第一进程的优先级最高的情况下,将所述第一进程进行处理,并将处理结果至少反馈给第二车站的主用数据处理单元。
13.如权利要求8所述的装置,其特征在于,所述第二车站还包括除所述第一数据处理单元以外的备用数据处理单元;
所述处理模块具体用于:
确定第二车站***的数据处理单元处于非主用状态,且,所述第一数据处理单元的主用优先级高于所述除所述第一数据处理单元以外的备用数据处理单元的情况下,将所述第一数据处理单元更新为所述第二车站的主用数据处理单元。
14.如权利要求8所述的装置,其特征在于,所述第二车站还包括除所述第一数据处理单元以外的备用数据处理单元;
所述处理模块具体用于:
接收将第一进程设置为主进程的切换命令;
将所述第一数据处理单元中的所述第一进程设置为主进程,并向所述第二车站***的车站数据处理单元及所述除所述第一数据处理单元以外的备用数据处理单元发送通知消息,以使所述第二车站***的车站数据处理单元及所述除所述第一数据处理单元以外的备用数据处理单元根据所述通知消息将所述第一进程设置为从进程。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510741031.7A CN105302670B (zh) | 2015-11-04 | 2015-11-04 | 一种采用多机冗余方式对车站进行监控的方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510741031.7A CN105302670B (zh) | 2015-11-04 | 2015-11-04 | 一种采用多机冗余方式对车站进行监控的方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105302670A true CN105302670A (zh) | 2016-02-03 |
CN105302670B CN105302670B (zh) | 2019-02-26 |
Family
ID=55199962
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510741031.7A Active CN105302670B (zh) | 2015-11-04 | 2015-11-04 | 一种采用多机冗余方式对车站进行监控的方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105302670B (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109597723A (zh) * | 2018-11-26 | 2019-04-09 | 南京轨道交通***工程有限公司 | 用于地铁综合监控***的双机热备冗余实现***及方法 |
CN110739709A (zh) * | 2019-11-06 | 2020-01-31 | 湖南微网能源技术有限公司 | 一种多机控制同步方法 |
CN111147126A (zh) * | 2019-12-26 | 2020-05-12 | 中国人民解放军空军勤务学院 | 北斗卫星短报文通信数据拆包传输方法 |
CN112506633A (zh) * | 2020-12-07 | 2021-03-16 | 广州新科佳都科技有限公司 | 一种多机冗余***及处理方法 |
CN113867129A (zh) * | 2021-10-27 | 2021-12-31 | 珠海格力电器股份有限公司 | 一种冗余控制方法、装置、***、计算机设备及存储介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH06214915A (ja) * | 1992-12-04 | 1994-08-05 | Internatl Business Mach Corp <Ibm> | 分散データ処理システム |
CN102523118A (zh) * | 2011-12-20 | 2012-06-27 | 西安艾贝尔科技发展有限公司 | 一种局域网内多套控制计算机构成的冗余控制***与方法 |
CN104598494A (zh) * | 2013-10-31 | 2015-05-06 | 大连易维立方技术有限公司 | 一种手机数据管理*** |
-
2015
- 2015-11-04 CN CN201510741031.7A patent/CN105302670B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH06214915A (ja) * | 1992-12-04 | 1994-08-05 | Internatl Business Mach Corp <Ibm> | 分散データ処理システム |
CN102523118A (zh) * | 2011-12-20 | 2012-06-27 | 西安艾贝尔科技发展有限公司 | 一种局域网内多套控制计算机构成的冗余控制***与方法 |
CN104598494A (zh) * | 2013-10-31 | 2015-05-06 | 大连易维立方技术有限公司 | 一种手机数据管理*** |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109597723A (zh) * | 2018-11-26 | 2019-04-09 | 南京轨道交通***工程有限公司 | 用于地铁综合监控***的双机热备冗余实现***及方法 |
CN109597723B (zh) * | 2018-11-26 | 2022-01-28 | 南京轨道交通***工程有限公司 | 用于地铁综合监控***的双机热备冗余实现***及方法 |
CN110739709A (zh) * | 2019-11-06 | 2020-01-31 | 湖南微网能源技术有限公司 | 一种多机控制同步方法 |
CN111147126A (zh) * | 2019-12-26 | 2020-05-12 | 中国人民解放军空军勤务学院 | 北斗卫星短报文通信数据拆包传输方法 |
CN112506633A (zh) * | 2020-12-07 | 2021-03-16 | 广州新科佳都科技有限公司 | 一种多机冗余***及处理方法 |
CN112506633B (zh) * | 2020-12-07 | 2023-10-27 | 广州新科佳都科技有限公司 | 一种多机冗余***及处理方法 |
CN113867129A (zh) * | 2021-10-27 | 2021-12-31 | 珠海格力电器股份有限公司 | 一种冗余控制方法、装置、***、计算机设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN105302670B (zh) | 2019-02-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10834186B2 (en) | Disaster recovery switchover method and system, and node | |
CN105302670A (zh) | 一种采用多机冗余方式对车站进行监控的方法及装置 | |
CN107491343B (zh) | 一种基于云计算的跨集群资源调度*** | |
KR100575497B1 (ko) | 내고장성 컴퓨터 시스템 | |
CN101394306B (zh) | 一种双服务器***的无缝切换方法 | |
CN105471960A (zh) | 一种私有云与公有云的信息交互***及方法 | |
CN107391276B (zh) | 分布式监听方法、监听控制装置及*** | |
CN103036719A (zh) | 一种基于主备集群服务器的跨地区服务容灾方法及装置 | |
CN111158962B (zh) | 一种异地容灾方法、装置、***、电子设备及存储介质 | |
CN102135929A (zh) | 一种分布式容错服务*** | |
CN103888277A (zh) | 一种网关容灾备份方法、装置和*** | |
CN106656589A (zh) | 一种服务器双机热备份*** | |
CN106161644A (zh) | 数据处理的分布式***及其数据处理方法 | |
CN114124978B (zh) | 一种基于分布式协同的视频云服务高可用方法和装置 | |
US20230004465A1 (en) | Distributed database system and data disaster backup drilling method | |
CN110348826A (zh) | 异地多活容灾方法、***、设备及可读存储介质 | |
CN103246585A (zh) | 一种存储控制器故障检测方法 | |
CN115827774A (zh) | 数据同步方法及计算设备 | |
CN109165122B (zh) | 一种提升基于区块链技术实现的应用***同城多园区部署灾备能力的方法 | |
CN112783694B (zh) | 一种高可用Redis的异地灾备方法 | |
CN102185717A (zh) | 业务处理设备、方法及*** | |
CN116185697B (zh) | 容器集群管理方法、装置、***、电子设备及存储介质 | |
CN117076196A (zh) | 一种数据库容灾的管控方法和装置 | |
CN111737043B (zh) | 数据库容灾方法、设备、服务器和存储介质 | |
CN102081621A (zh) | 一种确定数据库生产***容灾切换的方法和装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |