数据同步方法及系统与流程
未命名
07-30
阅读:72
评论:0

1.本发明涉及数据处理技术领域,尤其涉及一种数据同步方法及系统。
背景技术:
2.在基于通信的列车控制系统(communication based train control,cbtc)的列车自动监控子系统(automatic train supervision,ats)中,不同业务模块、不同节点以及主备机间往往需要数据同步。而信号系统对数据同步有着较为苛刻的要求。目前的数据同步的方法主要采用发送相同的数据包进行实时同步。随着信号系统接入外部信息源越来越多,这种架构已经无法满足运营的需要。
3.在城市轨道交通领域,目前调度中心和车站的主同步主要采用发送同步信息包,这种方案存在以下缺点:一、同步的方式单一,每次同步信息只能发送信号系统内部通信协议格式全体信息包,占用大量存储资源;二、缺乏灵活性,不能人为设置消息的过期时间,每次数据变化时不能单独发送,比如车站和调度中心同步时,若每次都发送全体信息包,会把所有的车站信息逐一发送一遍,既影响了效率,又会导致网络拥堵;三、抗干扰能力较弱,全体同步包受网络状态的影响较大,信息源会因为短暂的网路故障导致数据无法实时送达。
技术实现要素:
4.本发明提供的数据同步方法及系统,用于解决现有技术中调度中心和车站采用发送同步信息包进行数据同步时,同步数据传输延时高的问题。
5.本发明提供的一种数据同步方法,包括:
6.根据实时性要求将待同步数据划分为动态数据和非动态数据,所述待同步数据是由第一数据中心产生的;
7.获取所述非动态数据对应的同步信息包,并将所述同步信息包同步给第二数据中心;
8.将所述动态数据缓存到目标消息队列,通过所述目标消息队列将所述动态数据同步给所述第二数据中心;
9.其中,所述第一数据中心包括车站或调度中心,所述第二数据中心包括车站或调度中心,在所述第一数据中心为车站的情况下,所述第二数据中心为所述调度中心,在所述第一数据中心为调度中心的情况下,所述第二数据中心为所述车站。
10.根据本发明提供的一种数据同步方法,所述将所述动态数据缓存到目标消息队列,通过所述目标消息队列将所述动态数据同步给第二数据中心,包括:
11.采用第一预设协议对所述动态数据进行打包,获取所述动态数据对应的数据包,所述数据包的包头包括节点的信息、解析所述数据包所需的指针起始位置和偏移量,所述节点是根据产生所述待同步数据的第一数据中心确定的;
12.将所述数据包缓存到所述目标消息队列;
13.通过所述目标消息队列将所述数据包同步给所述第二数据中心,所述第二数据中
心通过解析所述数据包得到所述动态数据。
14.根据本发明提供的一种数据同步方法,所述获取所述非动态数据对应的同步信息包,并将所述同步信息包同步给所述第二数据中心,包括:
15.采用第二预设协议对所述非动态数据进行打包,获取所述同步信息包;
16.将所述同步信息包同步给所述第二数据中心。
17.根据本发明提供的一种数据同步方法,在所述将所述动态数据缓存到目标消息队列,通过所述目标消息队列将所述动态数据同步给第二数据中心之后,所述方法,还包括:
18.在确定所述动态数据同步失败的情况下,将同步失败的动态数据缓存到所述目标消息队列的挂起列表,以通过所述挂起列表将所述同步失败的动态数据再次同步给所述第二数据中心。
19.根据本发明提供的一种数据同步方法,所述动态数据包括如下至少一项:
20.表示信息、车次信息以及站台信息,所述表示信息至少包括信号灯信息、道岔信息以及区段信息,所述车次信息至少包括列车的实时位置以及列车移动授权包络面,所述站台信息至少包括停稳信息、扣车信息、跳停信息以及倒计时显示信息;
21.所述非动态数据至少包括运行图调整、派班计划以及车载视频。
22.根据本发明提供的一种数据同步方法,所述目标消息队列为redis的stream消息队列。本发明还提供一种数据同步系统,包括:数据划分模块、第一同步模块以及第二同步模块;
23.所述数据划分模块,用于根据实时性要求将待同步数据划分为动态数据和非动态数据,所述待同步数据是由第一数据中心产生的;
24.所述第一同步模块,用于获取所述非动态数据对应的同步信息包,并将所述同步信息包同步给第二数据中心;
25.所述第二同步模块,用于将所述动态数据缓存到目标消息队列,通过所述目标消息队列将所述动态数据同步给所述第二数据中心;
26.其中,所述第一数据中心包括车站或调度中心,所述第二数据中心包括车站或调度中心,在所述第一数据中心为车站的情况下,所述第二数据中心为所述调度中心,在所述第一数据中心为调度中心的情况下,所述第二数据中心为所述车站。
27.本发明还提供一种电子设备,包括处理器和存储有计算机程序的存储器,所述处理器执行所述程序时实现如上述任一种所述数据同步方法。
28.本发明还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现如上述任一种所述数据同步方法。
29.本发明还提供一种计算机程序产品,包括计算机程序,所述计算机程序被处理器执行时实现如上述任一种所述数据同步方法。
30.本发明提供的数据同步方法及系统,根据实时性的要求将第一数据中心产生的待同步数据划分为实时性要求较高的动态数据和实时性要求不高的非动态数据,对于动态数据,通过创建的目标消息队列将第动态数据同步给第二数据中心,对于非动态数据,采用发送同步信息包的方式将其同步给第二数据中心,从而有效低提高车站与调度中心同步数据传输的效率,降低数据传输的延时性。
附图说明
31.为了更清楚地说明本发明或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
32.图1是本发明提供的数据同步方法的流程示意图之一;
33.图2是本发明提供的数据同步方法的流程示意图之二;
34.图3是本发明提供的第一预设协议的协议格式的示意图;
35.图4是本发明提供的基于stream消息队列的ats缓存同步方案示意图;
36.图5是本发明提供的车站到调度中心的数据同步的示意图;
37.图6是本发明提供的数据同步系统的结构示意图;
38.图7是本发明提供的电子设备的实体结构示意图。
具体实施方式
39.为使本发明的目的、技术方案和优点更加清楚,下面将结合本发明中的附图,对本发明中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
40.本发明提供的数据同步方法,可以适用于cbtc的ats系统中的不同业务模块、不同节点、以及主备机间的数据同步,例如车站和调度中心的数据同步,在车站和调度中心的数据同步时,根据城轨信号业务需求定制化设置同步的方法,使调度中心和车站同步具备更强的兼容性和灵活性,本发明根据信号系统实时性的要求或业务的重要程度,将第一数据中心(可以是车站,也可以是调度中心)产生的待同步数据划分为实时性要求较高的动态数据和实时性要求不高的非动态数据,对于实时性要求较高的动态数据,设计了一种基于redis的stream消息队列的数据同步方法,在每个节点(可以是车站节点,也可以是调度中心节点)创建一个stream消息队列,用于和其他节点同步,各个节点通过stream消息队列的形式将待同步数据中的动态数据同步给第二数据中心(可以是车站,也可以是调度中心);对于实时性要求不高的非动态数据,采用发送同步信息包的形式将非动态数据同步给第二数据中心,该同步信息包中包括全体同步包和变化同步包,从而有效低提高了车站和调度中心同步数据传输的效率,降低数据传输的延时性,为控显上图像的绘制争取了时间,具体实现如下:
41.图1是本发明提供的数据同步方法的流程示意图之一,如图1所示,方法包括:
42.步骤110,根据实时性要求将待同步数据划分为动态数据和非动态数据,所述待同步数据是由第一数据中心产生的;
43.步骤120,获取所述非动态数据对应的同步信息包,并将所述同步信息包同步给第二数据中心;
44.步骤130,将所述动态数据缓存到目标消息队列,通过所述目标消息队列将所述动态数据同步给所述第二数据中心;
45.其中,所述第一数据中心包括车站或调度中心,所述第二数据中心包括车站或调
度中心,在所述第一数据中心为车站的情况下,所述第二数据中心为所述调度中心,在所述第一数据中心为调度中心的情况下,所述第二数据中心为所述车站。
46.需要说明的是,上述方法的执行主体可以是计算机设备。
47.可选地,该第一数据中心可以具体为产生待同步数据的数据中心,其可以是车站,也可以是调度中心,该待同步数据可以具体是第一数据中心需要在规定时间进行传输和交换的数据,其可以具体包括城市轨道交通信号系统中的信号内部业务模块的业务数据以及综合监控等外部接口数据,其中信号内部业务模块的业务数据可以具体包括车载控制器(vehicle on-board controller,vobc)接口数据、区域控制器(zone controller,zc)接口数据、联锁接口数据、车次识别和跟踪数据、进路选排数据、计划管理数据、调度命令数据等,综合监控等外部接口数据可以具体包括电力监控数据、火灾监控数据、乘客信息接口数据等。
48.根据城市轨道交通信号系统的业务特点及需求,对第一数据中心产生的需要在规定时间进行传输和交换的数据(即待同步数据)进行分类,将待同步数据分为实时性要求较高的动态数据和实时性要求不高的非动态数据。
49.对于实时性要求较高的动态数据,通过创建的目标消息队列进行数据传输,各个第一数据中心对应的节点,通过为其创建的目标消息队列,将待同步数据中的动态数据进行缓存,通过该目标消息队列将待同步数据中的动态数据同步给第二数据中心对应的节点,该第二数据中心可以是车站,也可以是调度中心。
50.具体地,第一数据中心对应的节点作为生产者,将待同步数据中的动态数据缓存到目标消息队列,第二数据中心对应的节点作为消费者,主动检测目标消息队列中是否有数据更新,如果消费者发现目标消息队列中有新的数据未被消费,就会读取未被消费的数据,实现动态数据的同步。
51.需要说明的是,在第一数据中心为车站时,第二数据中心为调度中心,本发明提供的数据同步方法可以实现车站到调度中心的数据同步,在第一数据中心为调度中心时,第二数据中心为车站,本发明提供的数据同步方法可以实现调度中心到车站的数据同步。
52.对于信息量较大且实时性要求没有那么高的数据,则可以采用发送同步信息包的方式进行同步,同步信息包既有全体信息包,又有变化信息包,该全体信息包中包括非动态数据的所有数据,该变化信息包中则只包括非动态数据中发生变化的数据。
53.可选地,第一数据中心和第二数据中心的数据同步后,可以将其解耦为异步模式。
54.进一步地,在一个实施例中,所述动态数据包括如下至少一项:
55.表示信息、车次信息以及站台信息,所述表示信息至少包括信号灯信息、道岔信息以及区段信息,所述车次信息至少包括列车的实时位置以及列车移动授权包络面,所述站台信息至少包括停稳信息、扣车信息、跳停信息以及倒计时显示信息;
56.所述非动态数据至少包括运行图调整、派班计划以及车载视频。
57.可选地,在城市轨道交通信号系统中,中心级节点缓存中存储的数据是其所辖线路范围内所有车站节点缓存的数据的集合,各集中站节点为了保证行车安全,除保存本集中站缓存数据外,还需保存相邻集中站节点缓存数据。本发明根据城市轨道交通信号系统的业务特点及需求,对需要在规定时间进行传输和交换的数据进行分类,分为动态数据和非动态数据。其中,实时性要求较高的动态数据可以具体包括表示信息(如信号灯、道岔、区
段等信息)、车次信息(如列车的实时位置、列车移动授权包络面等)、站台信息(如停稳、扣车、跳停、倒计时显示等信息)等通过目标消息队列进行数据传输。
58.对于信息量较大且实时性要求没有那么高的非动态数据,比如运行图调整、派班计划、车载视频等,则采用发送同步信息包进行同步,同步信息包既有全体信息包,又有变化信息包,实现在不同精度场景下,多个信息流数据的同步。
59.本发明提供的数据同步方法,根据实时性的要求将第一数据中心产生的待同步数据划分为实时性要求较高的动态数据和实时性要求不高的非动态数据,对于动态数据,通过创建的目标消息队列将第动态数据同步给第二数据中心,对于非动态数据,采用发送同步信息包的方式将其同步给第二数据中心,从而有效低提高车站与调度中心同步数据传输的效率,降低数据传输的延时性。
60.进一步地,在一个实施例中,所述目标消息队列为redis的stream消息队列。
61.可选地,该目标消息队列可以具体为redis的stream消息队列,更具体可以为redis5.0的stream消息队列。
62.对于实时性要求较高的动态数据,通过redis5.0的stream消息队列进行数据传输,各个第一数据中心对应的节点将动态数据进行打包后以时序序列号的形式缓存到其对应的stream消息队列的redis内存中,第二数据中心对应的节点作为消费者主动检测stream消息队列中是否存在数据更新,消费者主动检测到stream消息队列中有新的数据,就会读取未消费的数据,实现节点间的数据同步。
63.例如,图2是本发明提供的数据同步方法的流程示意图之二,如图2所示,根据城市轨道交通信号系统的业务特点及需求,对第一数据中心产生的需要在规定时间进行传输和交换的数据(信号内部业务模块的业务数据以及综合监控等外部接口数据)进行分类,将其分为实时性要求较高的动态数据和实时性要求不高的非动态数据。
64.对于实时性要求较高的动态数据通过数据共享接口将其缓存到stream消息队列的redis内存中,作为消费者的第二数据中心对应的节点通过读取该stream消息队列中的消息数据,获得该动态数据,并将获得的动态数据缓存到redis内存中的动态数据存储到oracle数据库中,对于实时性要求不高的非动态数据通过数据共享接口将其对应的同步信息包同步给第二数据中心,第二数据中心将获得的同步信息包缓存到oracle数据库中。
65.本发明提供的数据同步方法,通过对redis技术的应用,结合列车自动监控系统ats的需求,实现对ats传输的各种数据和信息的同步,在满足可靠性、可用性、可维护性和安全性的基础上,为调度决策者提供实时的决策依据。
66.进一步地,在一个实施例中,所述将所述动态数据缓存到目标消息队列,通过所述目标消息队列将所述动态数据同步给第二数据中心,可以具体包括:
67.采用第一预设协议对所述动态数据进行打包,获取所述动态数据对应的数据包,所述数据包的包头包括节点的信息、解析所述数据包所需的指针起始位置和偏移量,所述节点是根据产生所述待同步数据的第一数据中心确定的;
68.将所述数据包缓存到所述目标消息队列;
69.通过所述目标消息队列将所述数据包同步给所述第二数据中心,所述第二数据中心通过解析所述数据包得到所述动态数据。
70.可选地,由于采用redis作为缓存,为了避免既有线路升级带来的不便,本发明在
不改变既有信号系统内部通信协议库的基础下,提供了一种新的协议设计格式,即第一预设协议,在现有的信号系统内部通信协议库中的每个协议包头(即信号系统内部通信协议的协议头)后增加redis协议头,该redis协议头包含了每个节点的信息、解析每个数据包所需要的指针起始位置和偏移量,提高了信号系统缓存的兼容性和可扩展性,为信号系统既有线路的升级提供了方便和便利。
71.具体地,基于该第一预设协议对实时性要求较高的动态数据进行打包,得到该动态数据对应的数据包,该数据包的包头不仅保留了原有信号系统内部通信协议库中的协议的包头(即信号系统内部通信协议的协议头),还新增了redis协议头(存放n个设备偏移量),包括每个节点的信息、解析每个数据包所需要的指针起始位置和偏移量,该数据包中动态数据将以哈希键值对类型或者字符串类型的形式存在,其中,该指针起始位置是打包的设备长度的参考点位置,偏移量为设备的长度。
72.采用stream消息队列进行数据同步时,数据传输需要遵循一定的第一预设协议的协议格式,生产者在发送数据前进行打包时,采用stream消息队列的key,field,value结构。
73.由于城轨信号系统大多采用中央集权的管理方式,中心调度拥有着最高的调度权限,各个集中站的权限次之,自然站一般没有调度权限,只有监视权。
74.考虑到未来城轨领域朝着线网级的方向发展,因此key采用局码(线路号)、站码和数据流类型的组合方式进行设计,对于field的设计,根据使用场景的不同,选用不同的设计方法,比如对于移动设备车次信息,常采用车组号作为field;对于固定设备,比如信号灯、道岔等表示信息和站台信息,常采用设备id作为field。value值对应设备的全体状态信息。
75.例如,表示信息协议设计实例如表1所示:
76.表1
[0077][0078]
车次信息协议设计实例如表2所示:
[0079]
表2
[0080][0081]
根据stream消息队列的协议格式,设计的具备兼容性的第一预设协议的协议格式
如图3所示,在现有的信号系统内部通信协议库中的每个协议包头后增加redis消息队列的包头(即redis协议头),redis协议头包含了每个节点的信息以及解析每个协议包所需要的指针起始位置和偏移量,该第一预设协议存储第一数据中心的指针和偏移量,具有更多的灵活性和可拓展性,同时本发明提供的第一预设协议扩充了信号系统内部通信协议的使用范围,在不改变现有信号系统内部通信协议框架下提高了协议的通用性和可行性,每次扩充协议时都不需要修改协议代码。
[0082]
消费者节点在接收到生产者发送的stream消息队列中的数据之后,同样按照此协议格式进行解析.通过数据包的起始地址加上偏移量的方法,获取各个设备或者最小单元(例如第一数据中心)发送的数据。
[0083]
图4是本发明提供的基于stream消息队列的ats缓存同步方案示意图,如图4所示,需要同步数据的节点作为生产者将待同步数据以基于第一预设协议封装的数据包(包括待同步数据中动态数据的哈希键值对类型或字符串类型的形式)的形式写入到该stream消息队列中,有需求的节点作为消费者获取stream消息队列中的数据包。
[0084]
需要说明的是,各个生产者生成的数据包一般以时序序列号的形式缓存在redis内存中,该时序序列号=时间戳+序列号,其中,时间戳精确到毫秒,因为同一毫秒可能产生不同的数据,所以加上序列号保证唯一性,这是redis中的stream消息队列本身具备的功能,此处利用此功能。
[0085]
消费者主动检测stream消息队列中是否存在数据更新,如果发现stream消息队列中有新的数据,就会读取未消费的数据,实现节点间数据同步。
[0086]
进一步地,在一个实施例中,所述获取所述非动态数据对应的同步信息包,并将所述同步信息包同步给所述第二数据中心,可以具体包括:
[0087]
采用第二预设协议对所述非动态数据进行打包,获取所述同步信息包;
[0088]
将所述同步信息包同步给所述第二数据中心。
[0089]
可选地,该第二预设协议可以具体为信号系统内部通信协议库中的协议,通过采用该信号系统内部通信协议库中的协议对非动态数据,例如运行图调整、派班计划、车载视频等进行打包,得到非动态数据对应的同步信息包。
[0090]
将该同步信息包通过数据共享接口同步给第二数据中心。
[0091]
本发明提供的数据同步方法,根据对待同步数据的实时性要求,分为动态数据和非动态数据,动态数据采用stream消息队列进行同步,非动态数据采用发送同步信息包的方式进行同步,考虑到了不同数据进行同步时的灵活性和多样性需求,扩展了动态数据同步的定制化需求,在不改变现有信号系统内部通信协议框架的基础上,在信号系统内部通信协议包头后紧跟redis的stream消息队列的key、field、value结构,为既有线路的升级预留了可拓展的空间,保证系统运行的稳定性、一贯性和安全性。
[0092]
进一步地,在一个实施例中,在所述将所述动态数据缓存到目标消息队列,通过所述目标消息队列将所述动态数据同步给第二数据中心之后,所述方法,还可以具体包括:
[0093]
在确定所述动态数据同步失败的情况下,将同步失败的动态数据缓存到所述目标消息队列的挂起列表,以通过所述挂起列表将所述同步失败的动态数据再次同步给所述第二数据中心。
[0094]
可选地,如果消费者中的某个第二数据中心对应的节点在读取stream消息队列中
的数据后处理期间崩溃了,或者消费者中的某个第二数据中心对应的节点挂掉之后,由于各种原因再也无法上线了,均会导致动态数据同步失败。
[0095]
对于消费者中的某个第二数据中心对应的节点在读取stream消息队列中的数据后处理期间崩溃的情况,可以采用stream消息队列的挂起(pending)列表,该挂起列表可以具体用于记录虽读取但未处理的动态数据。采用pending记录表机制,可以使得某个消费者读取消息但未处理后,消息不会丢失。等待消费者再次上线后,继续读取该pending列表,就可以继续处理该消息了,保证消息的有序性和可靠性。对于消费者中的某个第二数据中心对应的节点挂掉之后,由于各种原因再也无法上线的情况,需要将该挂起列表中记录的消费者读取但未处理的消息,通过消息转移机制转移给消费者中其他第二数据中心对应的节点处理。
[0096]
本发明提供的数据同步方法,通过stream消息队列的挂起列表记录同步失败的动态数据,以便再次将同步失败的动态数据同步给第二数据中心,保障了数据的有序性和可靠性。
[0097]
例如,图5是本发明提供的车站到调度中心的数据同步的示意图,如图5所示,对于从车站到调度中心的待同步数据,此时,车站作为生产者生产待同步数据,将待同步数据通过redis的stream消息队列发送给调度中心,调度中心从而获得所有车站的数据,从而实现了调度中心和车站的数据同步。
[0098]
下面对本发明提供的数据同步系统进行描述,下文描述的数据同步系统与上文描述的数据同步方法可相互对应参照。
[0099]
图6是本发明提供的数据同步系统的结构示意图,如图6所示,包括:
[0100]
数据划分模块610、第一同步模块611以及第二同步模块612;
[0101]
所述数据划分模块610,用于根据实时性要求将待同步数据划分为动态数据和非动态数据,所述待同步数据是由第一数据中心产生的;
[0102]
所述第一同步模块611,用于获取所述非动态数据对应的同步信息包,并将所述同步信息包同步给第二数据中心;
[0103]
所述第二同步模块612,用于将所述动态数据缓存到目标消息队列,通过所述目标消息队列将所述动态数据同步给所述第二数据中心;
[0104]
其中,所述第一数据中心包括车站或调度中心,所述第二数据中心包括车站或调度中心,在所述第一数据中心为车站的情况下,所述第二数据中心为所述调度中心,在所述第一数据中心为调度中心的情况下,所述第二数据中心为所述车站。
[0105]
本发明提供的数据同步系统,根据实时性的要求将第一数据中心产生的待同步数据划分为实时性要求较高的动态数据和实时性要求不高的非动态数据,对于动态数据,通过创建的目标消息队列将第动态数据同步给第二数据中心,对于非动态数据,采用发送同步信息包的方式将其同步给第二数据中心,从而有效低提高车站与调度中心同步数据传输的效率,降低数据传输的延时性。
[0106]
图7是本发明提供的一种电子设备的实体结构示意图,如图7所示,该电子设备可以包括:处理器(processor)710、通信接口(communication interface)711、存储器(memory)712和总线(bus)713,其中,处理器710,通信接口711,存储器712通过总线713完成相互间的通信。处理器710可以调用存储器712中的逻辑指令,以执行如下方法:
[0107]
根据实时性要求将待同步数据划分为动态数据和非动态数据,所述待同步数据是由第一数据中心产生的;
[0108]
获取所述非动态数据对应的同步信息包,并将所述同步信息包同步给第二数据中心;
[0109]
将所述动态数据缓存到目标消息队列,通过所述目标消息队列将所述动态数据同步给所述第二数据中心;
[0110]
其中,所述第一数据中心包括车站或调度中心,所述第二数据中心包括车站或调度中心,在所述第一数据中心为车站的情况下,所述第二数据中心为所述调度中心,在所述第一数据中心为调度中心的情况下,所述第二数据中心为所述车站。
[0111]
此外,上述的存储器中的逻辑指令可以通过软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机电源屏(可以是个人计算机,服务器,或者网络电源屏等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom,read-only memory)、随机存取存储器(ram,random access memory)、磁碟或者光盘等各种可以存储程序代码的介质。
[0112]
进一步地,本发明公开一种计算机程序产品,所述计算机程序产品包括存储在非暂态计算机可读存储介质上的计算机程序,所述计算机程序包括程序指令,当所述程序指令被计算机执行时,计算机能够执行上述各方法实施例所提供的数据同步方法,例如包括:
[0113]
根据实时性要求将待同步数据划分为动态数据和非动态数据,所述待同步数据是由第一数据中心产生的;
[0114]
获取所述非动态数据对应的同步信息包,并将所述同步信息包同步给第二数据中心;
[0115]
将所述动态数据缓存到目标消息队列,通过所述目标消息队列将所述动态数据同步给所述第二数据中心;
[0116]
其中,所述第一数据中心包括车站或调度中心,所述第二数据中心包括车站或调度中心,在所述第一数据中心为车站的情况下,所述第二数据中心为所述调度中心,在所述第一数据中心为调度中心的情况下,所述第二数据中心为所述车站。
[0117]
另一方面,本发明还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现以执行上述各实施例提供的数据同步方法,例如包括:
[0118]
根据实时性要求将待同步数据划分为动态数据和非动态数据,所述待同步数据是由第一数据中心产生的;
[0119]
获取所述非动态数据对应的同步信息包,并将所述同步信息包同步给第二数据中心;
[0120]
将所述动态数据缓存到目标消息队列,通过所述目标消息队列将所述动态数据同步给所述第二数据中心;
[0121]
其中,所述第一数据中心包括车站或调度中心,所述第二数据中心包括车站或调
度中心,在所述第一数据中心为车站的情况下,所述第二数据中心为所述调度中心,在所述第一数据中心为调度中心的情况下,所述第二数据中心为所述车站。
[0122]
以上所描述的系统实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
[0123]
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如rom/ram、磁碟、光盘等,包括若干指令用以使得一台计算机电源屏(可以是个人计算机,服务器,或者网络电源屏等)执行各个实施例或者实施例的某些部分所述的方法。
[0124]
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
技术特征:
1.一种数据同步方法,其特征在于,包括:根据实时性要求将待同步数据划分为动态数据和非动态数据,所述待同步数据是由第一数据中心产生的;获取所述非动态数据对应的同步信息包,并将所述同步信息包同步给第二数据中心;将所述动态数据缓存到目标消息队列,通过所述目标消息队列将所述动态数据同步给所述第二数据中心;其中,所述第一数据中心包括车站或调度中心,所述第二数据中心包括车站或调度中心,在所述第一数据中心为车站的情况下,所述第二数据中心为所述调度中心,在所述第一数据中心为调度中心的情况下,所述第二数据中心为所述车站。2.根据权利要求1所述的数据同步方法,其特征在于,所述将所述动态数据缓存到目标消息队列,通过所述目标消息队列将所述动态数据同步给第二数据中心,包括:采用第一预设协议对所述动态数据进行打包,获取所述动态数据对应的数据包,所述数据包的包头包括节点的信息、解析所述数据包所需的指针起始位置和偏移量,所述节点是根据产生所述待同步数据的第一数据中心确定的;将所述数据包缓存到所述目标消息队列;通过所述目标消息队列将所述数据包同步给所述第二数据中心,所述第二数据中心通过解析所述数据包得到所述动态数据。3.根据权利要求1所述的数据同步方法,其特征在于,所述获取所述非动态数据对应的同步信息包,并将所述同步信息包同步给所述第二数据中心,包括:采用第二预设协议对所述非动态数据进行打包,获取所述同步信息包;将所述同步信息包同步给所述第二数据中心。4.根据权利要求1所述的数据同步方法,其特征在于,在所述将所述动态数据缓存到目标消息队列,通过所述目标消息队列将所述动态数据同步给第二数据中心之后,所述方法,还包括:在确定所述动态数据同步失败的情况下,将同步失败的动态数据缓存到所述目标消息队列的挂起列表,以通过所述挂起列表将所述同步失败的动态数据再次同步给所述第二数据中心。5.根据权利要求1-4任一项所述的数据同步方法,其特征在于,所述动态数据包括如下至少一项:表示信息、车次信息以及站台信息,所述表示信息至少包括信号灯信息、道岔信息以及区段信息,所述车次信息至少包括列车的实时位置以及列车移动授权包络面,所述站台信息至少包括停稳信息、扣车信息、跳停信息以及倒计时显示信息;所述非动态数据至少包括运行图调整、派班计划以及车载视频。6.根据权利要求1-4任一项所述的数据同步方法,其特征在于,所述目标消息队列为redis的stream消息队列。7.一种数据同步系统,其特征在于,包括:数据划分模块、第一同步模块以及第二同步模块;所述数据划分模块,用于根据实时性要求将待同步数据划分为动态数据和非动态数据,所述待同步数据是由第一数据中心产生的;
所述第一同步模块,用于获取所述非动态数据对应的同步信息包,并将所述同步信息包同步给第二数据中心;所述第二同步模块,用于将所述动态数据缓存到目标消息队列,通过所述目标消息队列将所述动态数据同步给所述第二数据中心;其中,所述第一数据中心包括车站或调度中心,所述第二数据中心包括车站或调度中心,在所述第一数据中心为车站的情况下,所述第二数据中心为所述调度中心,在所述第一数据中心为调度中心的情况下,所述第二数据中心为所述车站。8.一种电子设备,包括处理器和存储有计算机程序的存储器,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至6任一项所述数据同步方法。9.一种非暂态计算机可读存储介质,其上存储有计算机程序,其特征在于,该计算机程序被处理器执行时实现如权利要求1至6任一项所述数据同步方法。10.一种计算机程序产品,包括计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至6任一项所述数据同步方法。
技术总结
本发明提供一种数据同步方法及系统,方法包括:根据实时性要求将待同步数据划分为动态数据和非动态数据;获取非动态数据对应的同步信息包,并将同步信息包同步给第二数据中心;将动态数据缓存到目标消息队列,通过目标消息队列将动态数据同步给第二数据中心。本发明根据实时性的要求将第一数据中心产生的待同步数据划分为实时性要求较高的动态数据和实时性要求不高的非动态数据,对于动态数据,通过创建的目标消息队列将第动态数据同步给第二数据中心,对于非动态数据,采用发送同步信息包的方式将其同步给第二数据中心,从而有效低提高车站与调度中心同步数据传输的效率,降低数据传输的延时性。数据传输的延时性。数据传输的延时性。
技术研发人员:王中林 孙晓光 程远瑶 陈逸 郭佳 张旭 刘睿冉 方伟 徐硕 李俊松
受保护的技术使用者:通号城市轨道交通技术有限公司
技术研发日:2023.03.20
技术公布日:2023/7/26
版权声明
本文仅代表作者观点,不代表航家之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)
航空之家 https://www.aerohome.com.cn/
飞机超市 https://mall.aerohome.com.cn/
航空资讯 https://news.aerohome.com.cn/
上一篇:一种风机变频器除湿系统的制作方法 下一篇:转轴结构件及其制备方法和应用与流程