CN115694748A - 一种基于分层系统实时数据同步的冗余框架设计方法 - Google Patents
一种基于分层系统实时数据同步的冗余框架设计方法 Download PDFInfo
- Publication number
- CN115694748A CN115694748A CN202211298848.8A CN202211298848A CN115694748A CN 115694748 A CN115694748 A CN 115694748A CN 202211298848 A CN202211298848 A CN 202211298848A CN 115694748 A CN115694748 A CN 115694748A
- Authority
- CN
- China
- Prior art keywords
- data
- token
- channel
- server
- synchronous
- 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.)
- Pending
Links
Images
Landscapes
- Hardware Redundancy (AREA)
Abstract
一种基于分层系统实时数据同步的冗余框架设计方法,涉及工业自动化领域大型监控系统软件,使用逻辑数据分块以及线程级冗余热别的方法来提高系统层级之间的数据同步实时性和可靠性,大型工业监控系统平台按业务逻辑将数据分开处理,根据数据之间的联接紧密度将全范围数据分成若干数据块,由对应数量的通讯模块来分别负责同步管理,当系统平台两层之间同步时,对每一个独立的逻辑数据块,均有一主一备两路通道实时进行着数据交互,主备通道交互的数据内容完全一致,主备数据通道和动态令牌权限管理提供了线程级的冗余保护数据措施,确保了数据通道的零延时切换以及数据写入的有效性,大大提高了系统同步可靠性。
Description
技术领域
本发明涉及工业自动化领域大型监控系统软件,分层分布的网络架构下,大规模数据实时同步的可靠冗余技术手段,适用于综合监控、电力监控、环境与设备监控、火灾监控、煤矿、冶金、石油等各种自动化工业监控行业。
背景技术
大型工业监控系统平台因为网络框架的复杂性,往往使用分层结构,本文以地铁综合监控系统为例来说明。地铁综合监控系统数据平台可分为中心层和车站层两级,具体项目中,系统的数据采集工作主要由更靠近现场级设备的车站层系统来完成,但中心层系统也可能有部分数据采集接口。这时,中心层和车站层的数据同步工作就显得极为重要。为了保证数据可靠性和实时性,中心层和车站层之间通常使用多点冗余连接,在数据同步的两端,中心层部署多个(≥2)承担同步事务的服务器,同理车站层也有最少两台服务器参与数据同步通讯。每台参与的服务器上都部署数据同步通讯模块,但各层级之间同一时刻只有一个同步模块或者说一台服务器在实际执行同步任务,其余同步模块处于热备状态,由系统平台的容错功能来管理。监控数据平台的容错管理系统根据优先级设置从中心层和车站层各选择一台同步主服务器,其上的同步进程被允许进入正常工作流程,其余的所有服务器同步进程只能处于热备等待状态,这样既保证了进程冗余,也能节约软硬件资源。这种设计稳定但依然有缺点,在此模式下,同一时间系统层级之间只有两台服务器的两个进程间一个数据通道在进行数据通讯,一旦通道出现故障,不管是切换地址通道还是重新选择某一热备等待进程进入工作状态,中间重建数据通道都需要时间,虽然大概率重建时间会很短,但仍然存在数据丢失的风险。如图1所示,黑实线通道代表某一时刻正在工作的同步通道,暗虚线箭头代表红通道失效后可能建立的备用通道。
发明内容
根据现有技术中,进程级冗余热备的设计缺陷,本发明的目的是:使用逻辑数据分块以及线程级冗余热别的方法来提高系统层级之间的数据同步实时性和可靠性。
为了实现上述目的,本发明所采用的技术方案为:一种基于分层系统实时数据同步的冗余框架设计方法,包括:
数据分布式同步步骤:监控系统数据平台按业务逻辑将数据分开处理,根据数据之间的联接紧密度将全范围数据分成若干独立的逻辑数据块,由对应数量的通讯模块来分别负责同步管理;
线程级冗余保护步骤:中间层和车站层的主、备同步进程打开通讯线程,正常通讯,在监控系统数据平台两层之间针对某一独立的逻辑数据块同一时刻有两条通讯通道在交互数据,为了保证数据有效性,其中仅有主数据同步通道接收端处理数据,备数据同步通道接收端不处理数据,只确认收到的数据;
主备进程切换保护步骤:当数据块系统层级之间同步正常工作状态时,车站服务器1根据节点优先级首先向中心服务器1发起连接请求,中心响应后,双方建立连接,该通道取得读写实时库权限(详见动态令牌设计),主同步通道开始正常工作,同时,车站服务器2与中心服务器n也同样建立起对应该数据块的备用同步通道,n≥2;一旦主通道发生故障,主通道进程释放数据库操作权限,备通道获得权限处理数据同时转成主通道,而此时,原同步主通道尝试从故障中自我修复,建立稳定的同步备通道。
进一步的,所述中间层和车站层的同步硬件节点上,均注册了同步对端系统层的安全设备节点列表,每个同步进程在启动时都必须首先加载该设备节点列表,通讯服务端同步模块在收到连接请求后会检查来请求连接的IP地址是否是节点列表上的IP,如不是则视为非法请求,不予响应;通讯客户端同步模块根据列表中节点的加载顺序来确定发起连接请求的设备优先级,当某客户端模块进入主或备同步模式时,一旦当前维持的网络通道出现故障,则根据节点优先级切换到下一个节点。
进一步的,所述故障自我修复包括:
当车站服务器1上的原主同步模块发生故障,由于车站层有且仅有两台服务器节点,服务器2上已经有主同步模块在工作,因此模块A一边提示报警信息,警告运营工作人员,另一边在服务器1上尝试通过重启方式自我恢复,如果恢复无效,仍然不能正常工作,则发出高等级报警,通知运营技术人员来查找解决;如果恢复成功,则提示报警恢复信息,进入进程等待状态;
当中心服务器1上的原主同步模块发生故障,由于中心层有多台服务器节点可供选择,服务器N上已经有主同步模块在工作,因此剔除掉中心服务器1和N,车站服务器1上工作的原主同步模块在本身的安全设备列表中根据节点优先级依次选择中心服务器发起连接请求,直到重新成功建立起备同步通道。
进一步的,所述线程级冗余保护步骤中,使用动态令牌权限的方式来确定两个通道谁是主,谁是备,只有获得令牌权限的进程才能对系统库实施写操作,具体包括:
首先,当数据分布式同步步骤完成后,在系统中对应每一个待同步的逻辑数据块设立一个对应令牌状态点,用于记录当前的令牌实时权限状态,令牌仅有同步两端的上层服务器才能获得,下层服务器可通过报文的令牌状态位获知自己是否有处理数据的权限,令牌点的初始状态定为令牌未占用,当上层服务器的第一个同步模块进程初始化完成后读取该点状态,若令牌未占用,则该进程取走令牌,并将自己的服务器序号写入令牌,告诉之后的其他进程令牌已被占用,获得令牌的进程即同步主进程,拥有读写系统实时库的权限,这样第二个启动完成的同步模块只能自动成为备同步进程。
当主进程发现本身无法正常工作后,须立即归还令牌,将令牌点状态还原为令牌未占用,系统平台将令牌点状态变化通知实时推送给备进程,备进程接着获取令牌,拥有了读写系统实时库的权限,转为主进程,原主进程则通过切换通道或重启的方式从故障中自我恢复,进入备进程状态。
与现有技术相比,本发明为大型工业监控系统最为复杂的层间系统同步问题提供了可靠有效的解决方案,通过数据化整为零降低了大规模数据同步风险,提高了系统数据实时有效性;主备数据通道和动态令牌权限管理更是提供了线程级的冗余保护数据措施,确保了数据通道的零延时切换以及数据写入的有效性,大大提高了系统同步可靠性。增加了系统产品稳定性和竞争力。
附图说明
图1为现有技术中容错机制下的分层同步示意图。
图2为本实施例的数据分块分布式同步机制示意图。
图3为本实施例的数据块系统分层同步正常状态示意图。
图4为本实施例的报文结构定义示意图。
具体实施方式
为了更好地体现本发明的创造性,下面结合附图和具体实施例对本发明的技术方案做进一步的解释。
大型工业监控系统平台因为网络框架的复杂性,往往使用分层结构,本实施例以地铁综合监控系统为例来说明。地铁综合监控系统数据平台可分为中心层和车站层两级,具体项目中,系统的数据采集工作主要由更靠近现场级设备的车站层系统来完成,但中心层系统也可能有部分数据采集接口。这时,中心层和车站层的数据同步工作就显得极为重要。
本实施例使用一种基于分层系统实时数据同步的冗余框架设计方法,包括:(一)数据化整为零实现分布式同步
在大型数据系统平台层级数据同步中,虽然有模块(进程级)冗余保护,但数据是单通道的,一旦有通讯中断,仍有可能造成全范围监控数据丢失。目前大型工业监控系统平台的集成化程度越来越高,数据种类复杂多样,完全可以按业务逻辑将数据分开处理,根据数据之间的联接紧密度将全范围数据分成若干数据块,由对应数量的通讯模块来分别负责同步管理。各模块进程之间互不影响,各自负责各自的数据,某一个同步进程出错,不会影响到其他进程(数据块)的正常工作。同时,还能把单通道的数据通讯压力通过多模块对接多通道解放出来,不仅增加了可靠性也提高了实时性。
另外,监控系统各层级硬件上必然也是冗余配置,以地铁综合监控系统为例,中心层配置至少4台以上的服务器,每个车站也会配置至少2台服务器,把全部的数据同步模块按硬件数量平均地分布到各个服务器上。
如图2所示,每个数据块均有一个主同步模块和一个备同步模块来保证其功能可靠性。根据具体项目配置,各数据块对应的各主服务模块平均地分配到系统平台各层服务器上,同一个数据块的主、备同步任务须由该系统层里不同硬件节点来承担,以最大限度地提供进程级冗余可靠性。
(二)更可靠的通讯线程级冗余保护
虽然给数据分了块,降低了风险,但对单一数据块而言,一旦主模块故障,备模块还未能及时从等待转为工作状态,仍然存在数据丢失的危险。为了解决这个问题,本发明实现线程级冗余,两层之间的主、备同步进程均打开通讯线程,正常通讯,在综合监控系统平台两层之间针对某一数据块同一时刻有两条通讯通道在交互数据,当然,为了保证数据有效性,其中仅有主数据同步通道接收端处理数据,备数据通道接收端不处理数据,只是确认收到的数据。这样就为数据提供了通讯线程级的冗余保护,对服务器的资源负担增加微乎其微,仅仅增加了网络负荷,以工业监控骨干网千兆万兆的容量,精简的工业监控数据包影响完全可以忽略不计。一旦主通道出现了故障,系统直接处理备通道的数据,这样备通道无缝切换为主通道,完全没有数据丢失的风险。
在系统各层的同步硬件节点上,均注册了同步对端系统层的安全设备节点列表。每个同步进程在启动时都必须首先加载该设备节点列表,通讯服务端同步模块(上层同步节点)在收到连接请求后会检查来请求连接的IP地址是否是节点列表上的IP,如不是则视为非法请求,不予响应。通讯客户端同步模块(下层同步节点)根据列表中节点的加载顺序来确定发起连接请求的设备优先级,当某客户端模块进入主或备同步模式时,一旦当前维持的网络通道出现故障,则根据节点优先级切换到下一个节点。
(三)更可靠的主备进程切换保护
如图3所示,某数据块系统层级之间同步正常工作状态时,车站服务器1根据节点优先级首先向中心服务器1发起连接请求,中心响应后,双方建立连接,该通道取得读写实时库权限(详见动态令牌设计),主同步通道开始正常工作,同时,车站服务器2与中心服务器n也同样建立起对应该数据块的备用同步通道。一旦主通道发生故障,主通道进程释放数据库操作权限,备通道获得权限处理数据同时转成主通道,而此时,原同步主通道尝试从故障中自我修复,建立稳定的同步备通道,这里故障修复策略根据故障发生的不同,需要分类讨论。
故障可能性1,车站服务器1上的原主同步模块(我们以模块A来指代它)发生故障,由于车站层一般有且仅有两台服务器节点,服务器2上已经有主同步模块在工作,因此模块A一边提示报警信息,警告运营工作人员,另一边在服务器上1尝试通过重启等方式自我恢复,如果恢复无效,仍然不能正常工作,则发出高等级报警,通知运营技术人员来查找解决;如果恢复成功,则提示报警恢复信息,进入进程等待状态。
故障可能性2,中心服务器1上的原主同步模块(我们以模块C来指代它)发生故障,由于中心层有多台服务器节点可供选择,服务器N上已经有主同步模块在工作,因此剔除掉中心服务器1和N,车站服务器1上工作的模块A在本身的安全设备列表中根据节点优先级依次选择中心服务器发起连接请求,直到重新成功建立起备同步通道。
动态令牌保证读写唯一
当系统平台两层之间同步时,对每一个独立的逻辑数据块,均有一主一备两路通道实时进行着数据交互,主备通道交互的数据内容完全一致,唯一不同的是备通道数据接收方无需处理数据包内容。本设计使用动态令牌权限的方式来确定两个通道谁是主,谁是备,只有获得令牌权限的进程才能对系统库实施写操作。首先,当同步数据分块完成后,在系统中对应每一个待同步数据块设立一个对应令牌状态点,用于记录当前的令牌实时权限状态,令牌仅有同步两端的上层服务器才能获得,下层服务器可通过报文的令牌状态位获知自己是否有处理数据的权限。令牌点的初始状态定为令牌未占用(0),当上层服务器的第一个同步模块进程初始化完成后读取该点状态,如令牌未占用,则该进程取走令牌,并将自己的服务器序号写入令牌,告诉之后的其他进程令牌已被占用,获得令牌的进程即同步主进程,拥有读写系统实时库的权限,这样第二个启动完成的同步模块只能自动成为备同步进程。
当主进程发现本身无法正常工作后,须立时归还令牌,将令牌点状态还原为令牌未占用,系统平台将令牌点状态变化通知实时推送给备进程,备进程接着获取令牌,拥有了读写系统实时库的权限,转为主进程,原主进程则通过切换通道或重启等方式从故障中自我恢复,进入备进程状态。
如图4所示,每一帧报文的第四个字节即令牌标识,数据发送方根据本通道是否拥有令牌权限来填写该字节,数据接收端只需要查看此标识便可知此帧报文是否需要处理,这样,主备同步进程在需要时可实现零延时无缝切换,并保证同一时刻有且仅有一个进程会更新系统实时库。
以上的实施例仅为根据本发明的技术方案所公开的最佳实施例,不能以此限定本发明的保护范围,凡是按照本发明提出的技术思想,在技术方案基础上所做的任何改动,均落入本发明权利要求书的保护范围之内。
Claims (4)
1.一种基于分层系统实时数据同步的冗余框架设计方法,其特征在于,包括:
数据分布式同步步骤:监控系统数据平台按业务逻辑将数据分开处理,根据数据之间的联接紧密度将全范围数据分成若干独立的逻辑数据块,由对应数量的通讯模块来分别负责同步管理;
线程级冗余保护步骤:中间层和车站层的主、备同步进程打开通讯线程,正常通讯,在监控系统数据平台两层之间针对某一独立的逻辑数据块同一时刻有两条通讯通道在交互数据,为了保证数据有效性,其中仅有主数据同步通道接收端处理数据,备数据同步通道接收端不处理数据,只确认收到的数据;
主备进程切换保护步骤:当数据块系统层级之间同步正常工作状态时,车站服务器1根据节点优先级首先向中心服务器1发起连接请求,中心响应后,双方建立连接,该通道取得读写实时库权限,主同步通道开始正常工作,同时,车站服务器2与中心服务器n也同样建立起对应该数据块的备用同步通道,n≥2;一旦主通道发生故障,主通道进程释放数据库操作权限,备通道获得权限处理数据同时转成主通道,而此时,原同步主通道尝试从故障中自我修复,建立稳定的同步备通道。
2.根据权利要求1所述的一种基于分层系统实时数据同步的冗余框架设计方法,其特征在于:在所述中间层和车站层的同步硬件节点上,注册同步对端系统层的安全设备节点列表,每个同步进程在启动时都必须首先加载该设备节点列表,通讯服务端同步模块在收到连接请求后会检查来请求连接的IP地址是否是节点列表上的IP,如不是则视为非法请求,不予响应;通讯客户端同步模块根据列表中节点的加载顺序来确定发起连接请求的设备优先级,当某客户端模块进入主或备同步模式时,一旦当前维持的网络通道出现故障,则根据节点优先级切换到下一个节点。
3.根据权利要求1所述的一种基于分层系统实时数据同步的冗余框架设计方法,其特征在于:所述故障自我修复包括:
当车站服务器1上的原主同步模块发生故障,由于车站层有且仅有两台服务器节点,车站服务器2上已经有主同步模块在工作,因此车站服务器1上的原主同步模块发生故障一边提示报警信息,警告运营工作人员,另一边在车站服务器1上尝试通过重启方式自我恢复,如果恢复无效,仍然不能正常工作,则发出高等级报警,通知运营技术人员来查找解决;如果恢复成功,则提示报警恢复信息,进入进程等待状态;
当中心服务器1上的原主同步模块发生故障,由于中心层有多台服务器节点可供选择,中心服务器N上已经有主同步模块在工作,因此剔除掉中心服务器1和N,车站服务器1上工作的原主同步模块在本身的安全设备列表中根据节点优先级依次选择中心服务器发起连接请求,直到重新成功建立起备同步通道。
4.根据权利要求1所述的一种基于分层系统实时数据同步的冗余框架设计方法,其特征在于,所述线程级冗余保护步骤中,使用动态令牌权限的方式来确定两个通道谁是主,谁是备,只有获得令牌权限的进程才能对系统库实施写操作,具体包括:
首先,当数据分布式同步步骤完成后,在系统中对应每一个待同步的逻辑数据块设立一个对应令牌状态点,用于记录当前的令牌实时权限状态,令牌仅有同步两端的上层服务器才能获得,下层服务器可通过报文的令牌状态位获知自己是否有处理数据的权限,令牌点的初始状态定为令牌未占用,当上层服务器的第一个同步模块进程初始化完成后读取该点状态,若令牌未占用,则该进程取走令牌,并将自己的服务器序号写入令牌,告诉之后的其他进程令牌已被占用,获得令牌的进程即同步主进程,拥有读写系统实时库的权限,这样第二个启动完成的同步模块只能自动成为备同步进程。
当主进程发现本身无法正常工作后,须立即归还令牌,将令牌点状态还原为令牌未占用,系统平台将令牌点状态变化通知实时推送给备进程,备进程接着获取令牌,拥有了读写系统实时库的权限,转为主进程,原主进程则通过切换通道或重启的方式从故障中自我恢复,进入备进程状态。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211298848.8A CN115694748A (zh) | 2022-10-24 | 2022-10-24 | 一种基于分层系统实时数据同步的冗余框架设计方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211298848.8A CN115694748A (zh) | 2022-10-24 | 2022-10-24 | 一种基于分层系统实时数据同步的冗余框架设计方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115694748A true CN115694748A (zh) | 2023-02-03 |
Family
ID=85066389
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211298848.8A Pending CN115694748A (zh) | 2022-10-24 | 2022-10-24 | 一种基于分层系统实时数据同步的冗余框架设计方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115694748A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117724325A (zh) * | 2024-02-08 | 2024-03-19 | 北京和利时系统工程有限公司 | 一种铁路信号控制系统的安全计算机平台 |
-
2022
- 2022-10-24 CN CN202211298848.8A patent/CN115694748A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117724325A (zh) * | 2024-02-08 | 2024-03-19 | 北京和利时系统工程有限公司 | 一种铁路信号控制系统的安全计算机平台 |
CN117724325B (zh) * | 2024-02-08 | 2024-05-24 | 北京和利时系统工程有限公司 | 一种铁路信号控制系统的安全计算机平台 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP2281240B1 (en) | Maintaining data integrity in data servers across data centers | |
CN109474465A (zh) | 一种基于服务器集群的可动态流转的高可用性的实现方法和系统 | |
CN101079896B (zh) | 一种构建并行存储系统多可用性机制并存架构的方法 | |
EP2224341B1 (en) | Node system, server switching method, server device, and data transfer method | |
CN111949444A (zh) | 一种基于分布式服务集群的数据备份与恢复系统及方法 | |
US20080288812A1 (en) | Cluster system and an error recovery method thereof | |
CN102394914A (zh) | 集群脑裂处理方法和装置 | |
CN107508694B (zh) | 一种集群内的节点管理方法及节点设备 | |
CN103441863A (zh) | 一种空管自动化系统中的双服务器热备系统及控制方法 | |
US20080082630A1 (en) | System and method of fault tolerant reconciliation for control card redundancy | |
CN115694748A (zh) | 一种基于分层系统实时数据同步的冗余框架设计方法 | |
CN107357800A (zh) | 一种数据库高可用零丢失解决方法 | |
CN110971662A (zh) | 一种基于Ceph的两节点高可用实现方法及装置 | |
CN104468302A (zh) | 一种令牌的处理方法、装置及消息处理集群 | |
CN112866408A (zh) | 一种集群中业务切换方法、装置、设备及存储介质 | |
CN105959145B (zh) | 一种适用高可用性集群的并行管理服务器的方法及系统 | |
US20040153704A1 (en) | Automatic startup of a cluster system after occurrence of a recoverable error | |
CN114337944B (zh) | 一种系统级主备冗余通用控制方法 | |
CN1598778A (zh) | 数据容灾备份控制系统 | |
CN103559188B (zh) | 元数据管理方法及管理系统 | |
CN114706714A (zh) | 一种同步计算机内存分割快照的方法 | |
CN111953808B (zh) | 一种双机双活架构的数据传输切换方法及架构构建系统 | |
CN106027313B (zh) | 网络链路容灾系统及方法 | |
CN116346582A (zh) | 一种实现主备双网冗余方法、装置、设备及存储介质 | |
CN107181608A (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 |