数据同步方法、装置、计算机设备、存储介质和程序产品与流程
未命名
07-23
阅读:98
评论:0
1.本技术涉及大数据数据处理技术领域,特别是涉及一种数据同步方法、装置、计算机设备、存储介质和计算机程序产品。
背景技术:
2.随着计算机技术的发展,出现了众多的应用软件。在企业级的系统架构中,多个应用系统之间的数据需要进行信息共享才能完成后续的数据处理,因此需要多个应用软件所在的系统之间进行信息同步。
3.传统技术中,不同应用系统之间通常都是通过文件传输的方式进行数据同步。
4.然而,传统的同步方法需要按照同步周期来进行数据同步,导致不同应用系统之间的数据同步效率低下。
技术实现要素:
5.基于此,有必要针对上述技术问题,提供一种高效的数据同步方法、装置、计算机设备、计算机可读存储介质和计算机程序产品。
6.第一方面,本技术提供了一种数据同步方法。所述方法包括:
7.获取消息发送系统发送的eda(event driven architecture,事件驱动架构)消息数据;
8.提取所述eda消息数据的eda消息标识、以及消息发送系统标识,根据所述eda消息标识,确定订阅所述eda消息数据的消息接收系统标识;
9.根据所述eda消息标识、所述消息发送系统标识、以及所述消息接收系统标识,确定消息队列标识,并将所述eda消息数据加入至所述消息队列标识对应的消息队列;
10.推送所述消息队列中的eda消息数据至所述消息接收系统标识对应的消息接收系统。
11.在其中一个实施例中,所述推送所述消息队列中的eda消息数据至所述消息接收系统标识对应的消息接收系统之前,还包括:
12.根据所述eda消息标识,确定事件类型以及所述事件类型对应的状态集合;
13.获取所述eda消息数据携带的状态信息,基于所述状态信息以及所述事件类型对应的状态集合确定所述eda消息数据的状态标识;
14.为所述eda消息数据的消息队列增加所述状态标识。
15.在其中一个实施例中,所述提取所述eda消息数据的eda消息标识、以及消息发送系统标识包括:
16.获取所述eda消息数据的eda消息报文;
17.对所述eda消息报文进行解析,确定eda消息标识以及消息发送系统标识。
18.在其中一个实施例中,所述获取消息发送系统发送的eda消息数据之前,还包括:
19.接收消息发送系统的eda消息注册请求;
20.基于所述eda消息注册请求,确定事件类型,生成所述事件类型的eda消息数据标识;
21.将所述eda消息数据标识以及所述消息发送系统的消息发送系统标识关联存储,并将关联存储的所述eda消息数据标识以及所述消息发送系统的消息发送系统标识加入已注册消息事件列表。
22.在其中一个实施例中,所述获取消息发送系统发送的eda消息数据之前,还包括:
23.接收消息接收系统的订阅请求;
24.提取所述订阅请求携带的消息接收系统标识以及需要订阅的eda消息标识;
25.将所述消息接收系统标识添加至所述eda消息标识的已订阅系统列表。
26.在其中一个实施例中,上述方法还包括:
27.根据所述消息队列标识,建立所述消息队列的消息发送流水表;
28.在所述消息发送流水表中,记录所述消息队列中eda消息数据的发送结果;
29.识别所述发送结果为失败、并满足预设发送条件的eda消息数据,得到重发eda消息数据;
30.对所述重发eda消息数据进行消息重发。
31.第二方面,本技术还提供了一种数据同步装置。所述装置包括:
32.获取模块,用于获取消息发送系统发送的eda消息数据;
33.提取模块,用于提取所述eda消息数据的eda消息标识、以及消息发送系统标识,根据所述eda消息标识,确定订阅所述eda消息数据的消息接收系统标识;
34.消息队列确定模块,用于根据所述eda消息标识、所述消息发送系统标识、以及所述消息接收系统标识,确定消息队列标识,并将所述eda消息数据加入至所述消息队列标识对应的消息队列;
35.推送模块,用于推送所述消息队列中的eda消息数据至所述消息接收系统标识对应的消息接收系统。
36.第三方面,本技术还提供了一种计算机设备。所述计算机设备包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现以下步骤:
37.获取消息发送系统发送的eda消息数据;
38.提取所述eda消息数据的eda消息标识、以及消息发送系统标识,根据所述eda消息标识,确定订阅所述eda消息数据的消息接收系统标识;
39.根据所述eda消息标识、所述消息发送系统标识、以及所述消息接收系统标识,确定消息队列标识,并将所述eda消息数据加入至所述消息队列标识对应的消息队列;
40.推送所述消息队列中的eda消息数据至所述消息接收系统标识对应的消息接收系统。
41.第四方面,本技术还提供了一种计算机可读存储介质。所述计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现以下步骤:
42.获取消息发送系统发送的eda消息数据;
43.提取所述eda消息数据的eda消息标识、以及消息发送系统标识,根据所述eda消息标识,确定订阅所述eda消息数据的消息接收系统标识;
44.根据所述eda消息标识、所述消息发送系统标识、以及所述消息接收系统标识,确
定消息队列标识,并将所述eda消息数据加入至所述消息队列标识对应的消息队列;
45.推送所述消息队列中的eda消息数据至所述消息接收系统标识对应的消息接收系统。
46.第五方面,本技术还提供了一种计算机程序产品。所述计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现以下步骤:
47.获取消息发送系统发送的eda消息数据;
48.提取所述eda消息数据的eda消息标识、以及消息发送系统标识,根据所述eda消息标识,确定订阅所述eda消息数据的消息接收系统标识;
49.根据所述eda消息标识、所述消息发送系统标识、以及所述消息接收系统标识,确定消息队列标识,并将所述eda消息数据加入至所述消息队列标识对应的消息队列;
50.推送所述消息队列中的eda消息数据至所述消息接收系统标识对应的消息接收系统。
51.上述数据同步方法、装置、计算机设备、存储介质和计算机程序产品,获取消息发送系统发送的eda消息数据;提取所述eda消息数据的eda消息标识、以及消息发送系统标识,根据所述eda消息标识,确定订阅所述eda消息数据的消息接收系统标识;根据所述eda消息标识、所述消息发送系统标识、以及所述消息接收系统标识,确定消息队列标识,并将所述eda消息数据加入至所述消息队列标识对应的消息队列;推送所述消息队列中的eda消息数据至所述消息接收系统标识对应的消息接收系统。整个方案基于消息发送系统与消息接收系统之间的消息队列进行数据同步,根据所述eda消息标识、所述消息发送系统标识、以及所述消息接收系统标识,确定唯一的消息队列标识,可在消息发送系统产生eda消息数据时及时将eda消息数据加入消息队列标识对应的消息队列,并推送至消息接收系统,提高了不同系统之间数据同步的效率以及及时性。
附图说明
52.为了更清楚地说明本技术实施例或传统技术中的技术方案,下面将对实施例或传统技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
53.图1为一个实施例中数据同步方法的应用环境图;
54.图2为一个实施例中数据同步方法的流程示意图;
55.图3为另一个实施例中数据同步步骤的流程示意图;
56.图4为另一个实施例中数据同步步骤的流程示意图;
57.图5为另一个实施例中数据同步方法的应用环境图;
58.图6为一个实施例中eda消息数据的发送流程示意图;
59.图7为另一个实施例中数据同步方法的流程示意图;
60.图8为一个实施例中数据同步装置的结构框图;
61.图9为一个实施例中计算机设备的内部结构图。
具体实施方式
62.需要说明的是,本技术所涉及的用户信息(包括但不限于用户设备信息、用户个人信息等)和数据(包括但不限于用于分析的数据、存储的数据、展示的数据等),均为经用户授权或者经过各方充分授权的信息和数据。
63.为了使本技术的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本技术进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本技术,并不用于限定本技术。
64.目前不同应用系统间的信息同步主要通过日终文件传输来实现,这种方式实效性差。例如在用户个人终端系统内提供购物服务系统的入口,用户个人终端系统与购物服务系统使用用户互认免登机制,用户在点击购物服务系统入口时可无缝跳转至购物服务系统进行在线选购,整个过程对用户无感,就像在用户个人终端系统里直接购物一样。但目前该过程产生的购物订单只有日终的时候才会以文件方式传输给用户个人终端系统订单明细信息,也即用户在用户个人终端系统里通过购物服务系统入口选购的订单信息要隔天才会显示在用户个人终端系统的订单列表中,而且订单还涉及多种状态的变化,也都没法及时同步显示。
65.目前为解决订单信息同步实效慢问题,主要是通过联机交易实时推送订单信息。通过联机交易实时推送订单信息主要有以下问题:需要订单信息推送方和订单信息接收方两边应用系统需要协同开发处理;不易扩展,如果有其他第三方应用系统也想要订单信息,还需额外定制开发;联机交易容易产生系统瓶颈,因为每一笔订单信息的同步都依赖联机交易的实时响应,在交易并发量大时,由于交易处理时长增加很容易产生长交易继而引发应用告警;联机交易耦合性高,订单信息的发送方和接收方也彼此依赖,互相影响。
66.本技术为解决不同应用系统间信息同步的实效性问题,基于消息发送系统与消息接收系统之间的消息队列进行数据同步,根据eda消息标识、消息发送系统标识、以及消息接收系统标识,确定唯一的消息队列标识,可在消息发送系统产生eda消息数据时及时将eda消息数据加入消息队列标识对应的消息队列,并推送至消息接收系统,提高了不同系统之间数据同步的效率以及及时性。其中,事件驱动架构(event driven architecture,eda)是一种用于设计与实现应用和系统的方法,在这些应用和系统里,事件所触发的消息可以在独立的、非耦合的组件和服务之间传递,这些模块彼此并不知晓对方。
67.本技术实施例提供的数据同步方法,可以应用于如图1所示的应用环境中。其中,消息发送系统102通过网络与消息中心104进行通信,消息接收系统106通过网络与消息中心104进行通信。消息中心104获取消息发送系统102发送的eda消息数据;提取eda消息数据的eda消息标识、以及消息发送系统标识,根据eda消息标识,确定订阅eda消息数据的消息接收系统标识;根据eda消息标识、消息发送系统标识、以及消息接收系统标识,确定消息队列标识,并将eda消息数据加入至消息队列标识对应的消息队列;推送消息队列中的eda消息数据至消息接收系统标识对应的消息接收系统106。其中,消息发送系统102、消息中心104、消息接收系统106均可以用独立的服务器或者是多个服务器组成的服务器集群来实现。
68.在一个实施例中,如图2所示,提供了一种数据同步方法,以该方法应用于图1中的消息中心104为例进行说明,包括以下步骤:
69.步骤200,获取消息发送系统发送的eda消息数据。
70.其中,消息发送系统为eda消息的生产者,可通过事件管理接口与消息中心进行通信。消息中心为事件处理中心,负责eda消息的注册、发布以及订阅等任务。消息接收系统为eda消息数据的订阅者,在消息中心订阅eda消息数据,即可在消息发送系统产生eda消息事件时,将eda消息发送至消息中心,消息中心根据eda消息标识、消息发送系统标识、以及消息接收系统标识,确定消息队列标识,将eda消息数据加入至消息队列标识对应的消息队列中,并推送消息队列中的eda消息数据,使得消息发送系统可通过消息中心异步发送eda消息数据。消息接收系统可通过消息中心异步接收消息,并进行后续的处理,eda消息的发送和消费过程解耦,互不影响。
71.eda消息数据为eda消息事件的相关数据。eda消息事件为订单事件,则消息发送系统在触发订单相关事件时,通过事件管理接口将eda消息事件的相关数据发送至消息中心。
72.具体地,消息中心通过事件管理接口接收消息发送系统发送的eda消息数据。
73.步骤400,提取eda消息数据的eda消息标识、以及消息发送系统标识,根据eda消息标识,确定订阅eda消息数据的消息接收系统标识。
74.其中,eda消息数据中包含eda事件的相关信息,具体可以包括eda消息标识、消息发送系统标识、以及eda消息事件的详细信息。
75.具体地,消息中心对eda消息数据进行解析,根据eda消息数据标识关键字来提取eda消息标识,根据消息发送系统标识关键字来提取消息发送系统标识。然后,基于本地存储的已订阅系统列表以及消息接收系统标识关键字,提取消息接收系统标识。
76.步骤600,根据eda消息标识、消息发送系统标识、以及消息接收系统标识,确定消息队列标识,并将eda消息数据加入至消息队列标识对应的消息队列。
77.具体地,消息中心基于预设消息队列标识配置规则,根据eda消息标识、消息发送系统标识、以及消息接收系统标识,获得消息队列标识。其中,预设消息队列标识配置规则可为eda消息标识、消息发送系统标识、以及消息接收系统标识的拼接规则,还可以为eda消息标识、消息发送系统标识、以及消息接收系统标识的拼接以及加密规则,也可以为其他规则,工作人员可根据具体业务需求来确定。
78.消息队列为eda消息数据的存放队列,基于eda消息标识、消息发送系统标识、以及消息接收系统标识可确定唯一消息队列。
79.消息队列标识确定之后,消息中心将eda消息数据加入至eda消息队列标识对应的消息队列中,以使消息接收系统可通过事件管理接口接收相关eda消息数据。
80.步骤800,推送消息队列中的eda消息数据至消息接收系统标识对应的消息接收系统。
81.具体地,消息中心推送消息队列中的eda消息数据至消息接收系统标识对应的消息接收系统,即向消息接收系统广播eda消息数据已经生成,可实时接收相关eda消息。
82.上述数据同步方法中,获取消息发送系统发送的eda消息数据;提取eda消息数据的eda消息标识、以及消息发送系统标识,根据eda消息标识,确定订阅eda消息数据的消息接收系统标识;根据eda消息标识、消息发送系统标识、以及消息接收系统标识,确定消息队列标识,并将eda消息数据加入至消息队列标识对应的消息队列;推送消息队列中的eda消息数据至消息接收系统标识对应的消息接收系统。整个方案基于消息发送系统与消息接收
系统之间的消息队列,并根据eda消息标识、消息发送系统标识、以及消息接收系统标识,确定唯一的消息队列标识,可在消息发送系统产生eda消息数据时及时将eda消息数据加入消息队列标识对应的消息队列,并推送至消息接收系统,提高了不同系统之间数据同步的效率以及及时性。
83.在一个可选的实施例中,如图3所示,推送消息队列中的eda消息数据至消息接收系统标识对应的消息接收系统之前,还包括:
84.步骤702,根据eda消息标识,确定事件类型以及事件类型对应的状态集合。
85.其中,事件类型指eda消息事件对应的类型,事件类型可以包括订单事件、请求事件、沟通事件等,消息接收系统可根据具体数据处理需求订阅消息发送系统在消息中心已经发布的消息事件。每一eda消息事件可以包括不同的状态,eda消息事件的状态集合中记录eda消息事件的所有状态信息。以订单事件为例,可以包括订单生成、支付成功、已发货、确认收货、订单退款和取消等状态信息,可以记录eda消息事件所处的状态关键词。
86.具体地,eda消息标识与事件类型一一对应,消息中心可在eda消息事件信息表中查询eda消息标识对应的事件类型,接着,根据确定事件类型来获取事件类型对应的状态集合。
87.步骤704,获取eda消息数据携带的状态信息,基于状态信息以及事件类型对应的状态集合确定eda消息数据的状态标识。
88.其中,每一状态信息都携带有状态关键词,根据状态关键词可确定唯一的状态标识。
89.具体地,消息中心可对eda消息数据的详细信息进行解析,获取eda消息数据携带的状态信息,基于状态信息确定状态关键词,从事件类型对应的状态集合中确定eda消息事件对应的唯一状态标识。
90.步骤706,为eda消息数据的消息队列增加状态标识。
91.具体地,消息中心为eda消息数据所在的消息队列增加状态标识,以使消息接收系统可以及时得知eda消息事件所处的状态,可以及时更新eda消息事件的状态信息,方便后续数据处理。
92.本实施例中,通过为eda消息数据所在的消息队列增加状态标识,可以在消息接收系统也同步显示eda消息事件的状态信息,提高数据同步的效率。
93.在一个可选的实施例中,如图4所示,提取eda消息数据的eda消息标识、以及消息发送系统标识包括:
94.步骤402,获取eda消息数据的eda消息报文。
95.其中,eda消息数据的格式可以为报文格式,具体可以为xml格式,也可以为其他格式,如txt格式,本实施例在此不作限定。
96.eda消息报文包含报文头和报文体部分,报文头主要包含以下字段:
97.表1eda消息报文头信息表
98.名称关键字类型长度报文格式版本号sys_evt_pkg_vrsn字符2消息发送系统标识sys_evt_gnrt字符8事件标识sys_evt_code字符9
事件版本号sys_evt_vrsn字符2eda事件跟踪号sys_evt_edatrc_id字符25事件创建时间sys_evt_gnrt_time字符17事件有效时间sys_evt_vld_time字符8
99.报文体为灵活起见,传输json格式具体消息内容,具体字段信息可由消息发送方和接收方自行约定。
100.整体报文格式如下:
101.《?xml version="1.0"encoding="utf-8"?》
102.《evt》
103.《evt_header》
104.《!—事件消息报文头信息.—》
105.《/evt_header》
106.《evt_body》
107.《!—事件消息报文体信息.—》
108.《/evt_body》
109.《/evt》
110.具体地,消息发送系统在触发订单相关事件时,根据eda消息事件的相关数据生成eda消息报文,通过事件管理接口将eda消息报文发送至消息中心。
111.消息中心通过事件管理接口接收消息发送系统发送的eda消息报文。
112.步骤404,对eda消息报文进行解析,确定eda消息标识以及消息发送系统标识。
113.具体地,消息中心对eda消息报文进行解析,根据eda消息报文标识关键字来提取eda消息标识,根据消息发送系统标识关键字来提取消息发送系统标识。然后,基于本地存储的已订阅系统列表以及消息接收系统标识关键字,提取消息接收系统标识。
114.本实施例中,通过约定的报文格式来进行eda消息数据传输,基于事件粒度管理消息清晰明了。事件消息异步发送、异步获取效率高,不存在长交易等待问题。所有对同一事件感兴趣的订阅者都可以接收到相同的事件消息,提高了eda消息数据同步的效率。对同一个消息事件,不同的订阅方接收到消息后可以有不同的响应逻辑(处理逻辑)。
115.在一个可选的实施例中,获取消息发送系统发送的eda消息数据之前,还包括:
116.接收消息发送系统的eda消息注册请求;
117.基于eda消息注册请求,确定事件类型,生成事件类型的eda消息数据标识;
118.将eda消息数据标识以及消息发送系统的消息发送系统标识关联存储,并将关联存储的eda消息数据标识以及消息发送系统的消息发送系统标识加入已注册消息事件列表。
119.具体地,消息发送系统可包括不同的应用系统,不同的消息发送系统均可在消息中心进行eda消息事件注册。如图5所示,消息中心包括时间管理注册中心以及eda消息中心。消息发送系统首选需要在事件管理注册中心申请注册发布订单同步事件。进一步地,消息中心的事件管理注册中心接收消息发送系统的eda消息注册请求;对eda消息注册请求进行解析,确定eda消息事件类型。
120.然后由事件管理注册中心根据事件类型,为eda消息事件生成唯一的事件标识,注
册审批通过后,消息接收系统即可进行申请订阅该事件代码。之后,即消息发送系统即可通过事件管理接口进行eda消息数据异步发送,消息接收系统即可通过事件管理接口异步取订单消息。
121.同时,消息中心将eda消息数据标识以及消息发送系统的消息发送系统标识关联存储,并将关联存储的eda消息数据标识以及消息发送系统的消息发送系统标识加入已注册消息事件列表。
122.在一个可选的实施例中,获取消息发送系统发送的eda消息数据之前,还包括:
123.接收消息接收系统的订阅请求;
124.提取订阅请求携带的消息接收系统标识以及需要订阅的eda消息标识;
125.将消息接收系统标识添加至eda消息标识的已订阅系统列表。
126.具体地,消息接收系统在使用eda消息组件进行收取消息之前,先要向事件管理注册中心申请订阅eda消息事件,在审批通过后方可通过事件管理接口获取或者消费消息。
127.消息中心发布已注册消息事件列表中的消息事件,消息接收系统可根据需求订阅已注册消息事件列表中的任一消息事件,向消息中心发送订阅请求;消息中心的事件管理注册中心接收订阅请求,对订阅请求进行解析,获取订阅请求携带的消息接收系统标识以及需要订阅的eda消息标识;然后,将消息接收系统标识添加至eda消息标识的已订阅系统列表。
128.对于同一个发布事件,可以有多方一起订阅,如图6所示,虽然只有只发布了一个事件,但有三个其他应用订阅了该事件,所以只要有事件发送,相应的消息队列都会添加进同样的eda消息内容,从而订阅方可随时取走消息,消息传送和接收都会很及时,可以达到很好的准实时同步效果。而且发送方和接收方以及多方订阅方之间都是完全独立互不干扰的。从而即使有新的订阅方申请加入对其他方是完全无影响的。
129.例如,在订单系统和用户个人生活系统的订单消息同步的场景中,当订单生成、支付成功、已发货、确认收货、订单退款和取消,都会实时触发上述应用发送消息事件,从而将订单相关信息及时同步给建行生活订阅方或者其他订阅了相同事件标识的第三方订阅方。
130.本实施例中,通过eda消息准实时异步传输实时性和效率高,支持高并发。消息生产方和消费方松耦合互不影响。易扩展,如果有第三方对已有事件消息感兴趣,可以自主申请订阅消费事件消息,对该消息的生产方以及已有订阅方毫无影响。
131.在一个可选的实施例中,上述方法还包括:
132.根据消息队列标识,建立消息队列的消息发送流水表;
133.在消息发送流水表中,记录消息队列中eda消息数据的发送结果;
134.识别发送结果为失败、并满足预设发送条件的eda消息数据,得到重发eda消息数据;
135.对重发eda消息数据进行消息重发。
136.具体地,消息队列中的每一eda消息数据的发送过程都会记录至消息队列的消息发送流水表中。消息发送流水表包括消息队列标识、事件标识、首次发送时间、末次发送时间、发送结果、重发次数、消息报文体、以及异常信息等。
137.预设发送条件包括发送结果为失败且重发次数小于预设发送阈值。消息中心可定时轮询消息发送流水表中每一消息事件的发送情况,当识别发送结果为失败、并满足预设
发送条件的eda消息数据,得到重发eda消息数据,对重发eda消息数据进行消息重发。
138.消息发送系统也可设置eda消息事件发送流水表,来追踪每一eda消息事件发送至消息中心的发送状态,eda消息事件发送流水表如表2所示:
139.表2eda消息事件发送流水表
[0140][0141][0142]
如果有异常发送未成功也会标记发送结果状态为失败,eda事件跟踪号为eda消息事件的唯一流水号,可用于追踪eda消息事件的发送情况。消息发送系统可增加定时任务,不断轮询发送流水表中send_status状态为02且重发次数小于5的记录,如有则进行重发处理,重发后,更新last_send_time时间和send_times,若重发成功则重置状态码为01。
[0143]
本实施例中,通过对消息队列中的eda消息数据的发送情况进行追踪,可及时发现发送失败的eda消息数据,进行重发,提高了数据同步的准确性。
[0144]
为了易于理解本技术实施例提供的技术方案,如图7所示,以完整的数据同步过程对本技术实施例提供的数据同步方法进行简要说明:
[0145]
步骤701,接收消息发送系统的eda消息注册请求。基于eda消息注册请求,确定事件类型,生成事件类型的eda消息数据标识。将eda消息数据标识以及消息发送系统的消息发送系统标识关联存储,并将关联存储的eda消息数据标识以及消息发送系统的消息发送系统标识加入已注册消息事件列表。
[0146]
步骤702,接收消息接收系统的订阅请求;提取订阅请求携带的消息接收系统标识以及需要订阅的eda消息标识;将消息接收系统标识添加至eda消息标识的已订阅系统列表。
[0147]
步骤703,获取eda消息数据的eda消息报文;对eda消息报文进行解析,确定eda消息标识以及消息发送系统标识;根据eda消息标识,确定订阅eda消息数据的消息接收系统
标识。
[0148]
步骤704,根据eda消息标识、消息发送系统标识、以及消息接收系统标识,确定消息队列标识,并将eda消息数据加入至消息队列标识对应的消息队列。
[0149]
步骤705,根据eda消息标识,确定事件类型以及事件类型对应的状态集合;获取eda消息数据携带的状态信息,基于状态信息以及事件类型对应的状态集合确定eda消息数据的状态标识;为eda消息数据的消息队列增加状态标识。
[0150]
步骤706,推送消息队列中的eda消息数据至消息接收系统标识对应的消息接收系统。
[0151]
步骤707,根据消息队列标识,建立消息队列的消息发送流水表;在消息发送流水表中,记录消息队列中eda消息数据的发送结果;识别发送结果为失败、并满足预设发送条件的eda消息数据,得到重发eda消息数据;对重发eda消息数据进行消息重发。
[0152]
应该理解的是,虽然如上的各实施例所涉及的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,如上的各实施例所涉及的流程图中的至少一部分步骤可以包括多个步骤或者多个阶段,这些步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤中的步骤或者阶段的至少一部分轮流或者交替地执行。
[0153]
基于同样的发明构思,本技术实施例还提供了一种用于实现上述所涉及的数据同步方法的数据同步装置。该装置所提供的解决问题的实现方案与上述方法中所记载的实现方案相似,故下面所提供的一个或多个数据同步装置实施例中的具体限定可以参见上文中对于数据同步方法的限定,在此不再赘述。
[0154]
在一个实施例中,如图8所示,提供了一种数据同步装置,包括:获取模块802、提取模块804、消息队列确定模块806和推送模块808,其中:
[0155]
获取模块802,用于获取消息发送系统发送的eda消息数据。
[0156]
提取模块804,用于提取eda消息数据的eda消息标识、以及消息发送系统标识,根据eda消息标识,确定订阅eda消息数据的消息接收系统标识。
[0157]
消息队列确定模块806,用于根据eda消息标识、消息发送系统标识、以及消息接收系统标识,确定消息队列标识,并将eda消息数据加入至消息队列标识对应的消息队列。
[0158]
推送模块808,用于推送消息队列中的eda消息数据至消息接收系统标识对应的消息接收系统。
[0159]
在一个实施例中,消息队列确定模块还用于根据eda消息标识,确定事件类型以及事件类型对应的状态集合;获取eda消息数据携带的状态信息,基于状态信息以及事件类型对应的状态集合确定eda消息数据的状态标识;为eda消息数据的消息队列增加状态标识。
[0160]
在一个实施例中,提取模块还用于获取eda消息数据的eda消息报文;对eda消息报文进行解析,确定eda消息标识以及消息发送系统标识。
[0161]
在一个实施例中,数据同步装置还包括注册模块,用于接收消息发送系统的eda消息注册请求;基于eda消息注册请求,确定事件类型,生成事件类型的eda消息数据标识;将eda消息数据标识以及消息发送系统的消息发送系统标识关联存储,并将关联存储的eda消
息数据标识以及消息发送系统的消息发送系统标识加入已注册消息事件列表。
[0162]
在一个实施例中,数据同步装置还包括订阅模块,用于接收消息接收系统的订阅请求;提取订阅请求携带的消息接收系统标识以及需要订阅的eda消息标识;将消息接收系统标识添加至eda消息标识的已订阅系统列表。
[0163]
在一个实施例中,数据同步装置还包括重发模块,用于根据消息队列标识,建立消息队列的消息发送流水表;在消息发送流水表中,记录消息队列中eda消息数据的发送结果;识别发送结果为失败、并满足预设发送条件的eda消息数据,得到重发eda消息数据;对重发eda消息数据进行消息重发。
[0164]
上述数据同步装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
[0165]
在一个实施例中,提供了一种计算机设备,该计算机设备可以是服务器,其内部结构图可以如图9所示。该计算机设备包括通过系统总线连接的处理器、存储器和网络接口。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质和内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的数据库用于存储已订阅系统列表以及已注册消息事件列表。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种数据同步方法。
[0166]
本领域技术人员可以理解,图9中示出的结构,仅仅是与本技术方案相关的部分结构的框图,并不构成对本技术方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
[0167]
在一个实施例中,提供了一种计算机设备,包括存储器和处理器,存储器中存储有计算机程序,该处理器执行计算机程序时实现以下步骤:
[0168]
获取消息发送系统发送的eda消息数据;
[0169]
提取eda消息数据的eda消息标识、以及消息发送系统标识,根据eda消息标识,确定订阅eda消息数据的消息接收系统标识;
[0170]
根据eda消息标识、消息发送系统标识、以及消息接收系统标识,确定消息队列标识,并将eda消息数据加入至消息队列标识对应的消息队列;
[0171]
推送消息队列中的eda消息数据至消息接收系统标识对应的消息接收系统。
[0172]
在一个实施例中,处理器执行计算机程序时还实现以下步骤:推送消息队列中的eda消息数据至消息接收系统标识对应的消息接收系统之前,还包括:根据eda消息标识,确定事件类型以及事件类型对应的状态集合;获取eda消息数据携带的状态信息,基于状态信息以及事件类型对应的状态集合确定eda消息数据的状态标识;为eda消息数据的消息队列增加状态标识。
[0173]
在一个实施例中,处理器执行计算机程序时还实现以下步骤:提取eda消息数据的eda消息标识、以及消息发送系统标识包括:获取eda消息数据的eda消息报文;对eda消息报文进行解析,确定eda消息标识以及消息发送系统标识。
[0174]
在一个实施例中,处理器执行计算机程序时还实现以下步骤:获取消息发送系统
发送的eda消息数据之前,还包括:接收消息发送系统的eda消息注册请求;基于eda消息注册请求,确定事件类型,生成事件类型的eda消息数据标识;将eda消息数据标识以及消息发送系统的消息发送系统标识关联存储,并将关联存储的eda消息数据标识以及消息发送系统的消息发送系统标识加入已注册消息事件列表。
[0175]
在一个实施例中,处理器执行计算机程序时还实现以下步骤:获取消息发送系统发送的eda消息数据之前,还包括:接收消息接收系统的订阅请求;提取订阅请求携带的消息接收系统标识以及需要订阅的eda消息标识;将消息接收系统标识添加至eda消息标识的已订阅系统列表。
[0176]
在一个实施例中,处理器执行计算机程序时还实现以下步骤:根据消息队列标识,建立消息队列的消息发送流水表;在消息发送流水表中,记录消息队列中eda消息数据的发送结果;识别发送结果为失败、并满足预设发送条件的eda消息数据,得到重发eda消息数据;对重发eda消息数据进行消息重发。
[0177]
在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现以下步骤:
[0178]
获取消息发送系统发送的eda消息数据;
[0179]
提取eda消息数据的eda消息标识、以及消息发送系统标识,根据eda消息标识,确定订阅eda消息数据的消息接收系统标识;
[0180]
根据eda消息标识、消息发送系统标识、以及消息接收系统标识,确定消息队列标识,并将eda消息数据加入至消息队列标识对应的消息队列;
[0181]
推送消息队列中的eda消息数据至消息接收系统标识对应的消息接收系统。
[0182]
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:推送消息队列中的eda消息数据至消息接收系统标识对应的消息接收系统之前,还包括:根据eda消息标识,确定事件类型以及事件类型对应的状态集合;获取eda消息数据携带的状态信息,基于状态信息以及事件类型对应的状态集合确定eda消息数据的状态标识;为eda消息数据的消息队列增加状态标识。
[0183]
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:提取eda消息数据的eda消息标识、以及消息发送系统标识包括:获取eda消息数据的eda消息报文;对eda消息报文进行解析,确定eda消息标识以及消息发送系统标识。
[0184]
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:获取消息发送系统发送的eda消息数据之前,还包括:接收消息发送系统的eda消息注册请求;基于eda消息注册请求,确定事件类型,生成事件类型的eda消息数据标识;将eda消息数据标识以及消息发送系统的消息发送系统标识关联存储,并将关联存储的eda消息数据标识以及消息发送系统的消息发送系统标识加入已注册消息事件列表。
[0185]
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:获取消息发送系统发送的eda消息数据之前,还包括:接收消息接收系统的订阅请求;提取订阅请求携带的消息接收系统标识以及需要订阅的eda消息标识;将消息接收系统标识添加至eda消息标识的已订阅系统列表。
[0186]
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:根据消息队列标识,建立消息队列的消息发送流水表;在消息发送流水表中,记录消息队列中eda消息数据
的发送结果;识别发送结果为失败、并满足预设发送条件的eda消息数据,得到重发eda消息数据;对重发eda消息数据进行消息重发。
[0187]
在一个实施例中,提供了一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现以下步骤:
[0188]
获取消息发送系统发送的eda消息数据;
[0189]
提取eda消息数据的eda消息标识、以及消息发送系统标识,根据eda消息标识,确定订阅eda消息数据的消息接收系统标识;
[0190]
根据eda消息标识、消息发送系统标识、以及消息接收系统标识,确定消息队列标识,并将eda消息数据加入至消息队列标识对应的消息队列;
[0191]
推送消息队列中的eda消息数据至消息接收系统标识对应的消息接收系统。
[0192]
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:推送消息队列中的eda消息数据至消息接收系统标识对应的消息接收系统之前,还包括:根据eda消息标识,确定事件类型以及事件类型对应的状态集合;获取eda消息数据携带的状态信息,基于状态信息以及事件类型对应的状态集合确定eda消息数据的状态标识;为eda消息数据的消息队列增加状态标识。
[0193]
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:提取eda消息数据的eda消息标识、以及消息发送系统标识包括:获取eda消息数据的eda消息报文;对eda消息报文进行解析,确定eda消息标识以及消息发送系统标识。
[0194]
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:获取消息发送系统发送的eda消息数据之前,还包括:接收消息发送系统的eda消息注册请求;基于eda消息注册请求,确定事件类型,生成事件类型的eda消息数据标识;将eda消息数据标识以及消息发送系统的消息发送系统标识关联存储,并将关联存储的eda消息数据标识以及消息发送系统的消息发送系统标识加入已注册消息事件列表。
[0195]
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:获取消息发送系统发送的eda消息数据之前,还包括:接收消息接收系统的订阅请求;提取订阅请求携带的消息接收系统标识以及需要订阅的eda消息标识;将消息接收系统标识添加至eda消息标识的已订阅系统列表。
[0196]
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:根据消息队列标识,建立消息队列的消息发送流水表;在消息发送流水表中,记录消息队列中eda消息数据的发送结果;识别发送结果为失败、并满足预设发送条件的eda消息数据,得到重发eda消息数据;对重发eda消息数据进行消息重发。
[0197]
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本技术所提供的各实施例中所使用的对存储器、数据库或其它介质的任何引用,均可包括非易失性和易失性存储器中的至少一种。非易失性存储器可包括只读存储器(read-only memory,rom)、磁带、软盘、闪存、光存储器、高密度嵌入式非易失性存储器、阻变存储器(reram)、磁变存储器(magnetoresistive random access memory,mram)、铁电存储器(ferroelectric random access memory,fram)、相变存储器(phase change memory,
pcm)、石墨烯存储器等。易失性存储器可包括随机存取存储器(random access memory,ram)或外部高速缓冲存储器等。作为说明而非局限,ram可以是多种形式,比如静态随机存取存储器(static random access memory,sram)或动态随机存取存储器(dynamic random access memory,dram)等。本技术所提供的各实施例中所涉及的数据库可包括关系型数据库和非关系型数据库中至少一种。非关系型数据库可包括基于区块链的分布式数据库等,不限于此。本技术所提供的各实施例中所涉及的处理器可为通用处理器、中央处理器、图形处理器、数字信号处理器、可编程逻辑器、基于量子计算的数据处理逻辑器等,不限于此。
[0198]
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
[0199]
以上所述实施例仅表达了本技术的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本技术专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本技术构思的前提下,还可以做出若干变形和改进,这些都属于本技术的保护范围。因此,本技术的保护范围应以所附权利要求为准。
技术特征:
1.一种数据同步方法,其特征在于,所述方法包括:获取消息发送系统发送的eda消息数据;提取所述eda消息数据的eda消息标识、以及消息发送系统标识,根据所述eda消息标识,确定订阅所述eda消息数据的消息接收系统标识;根据所述eda消息标识、所述消息发送系统标识、以及所述消息接收系统标识,确定消息队列标识,并将所述eda消息数据加入至所述消息队列标识对应的消息队列;推送所述消息队列中的eda消息数据至所述消息接收系统标识对应的消息接收系统。2.根据权利要求1所述的方法,其特征在于,所述推送所述消息队列中的eda消息数据至所述消息接收系统标识对应的消息接收系统之前,还包括:根据所述eda消息标识,确定事件类型以及所述事件类型对应的状态集合;获取所述eda消息数据携带的状态信息,基于所述状态信息以及所述事件类型对应的状态集合确定所述eda消息数据的状态标识;为所述eda消息数据的消息队列增加所述状态标识。3.根据权利要求1所述的方法,其特征在于,所述提取所述eda消息数据的eda消息标识、以及消息发送系统标识包括:获取所述eda消息数据的eda消息报文;对所述eda消息报文进行解析,确定eda消息标识以及消息发送系统标识。4.根据权利要求1所述的方法,其特征在于,所述获取消息发送系统发送的eda消息数据之前,还包括:接收消息发送系统的eda消息注册请求;基于所述eda消息注册请求,确定事件类型,生成所述事件类型的eda消息数据标识;将所述eda消息数据标识以及所述消息发送系统的消息发送系统标识关联存储,并将关联存储的所述eda消息数据标识以及所述消息发送系统的消息发送系统标识加入已注册消息事件列表。5.根据权利要求1所述的方法,其特征在于,所述获取消息发送系统发送的eda消息数据之前,还包括:接收消息接收系统的订阅请求;提取所述订阅请求携带的消息接收系统标识以及需要订阅的eda消息标识;将所述消息接收系统标识添加至所述eda消息标识的已订阅系统列表。6.根据权利要求1所述的方法,其特征在于,所述方法还包括:根据所述消息队列标识,建立所述消息队列的消息发送流水表;在所述消息发送流水表中,记录所述消息队列中eda消息数据的发送结果;识别所述发送结果为失败、并满足预设发送条件的eda消息数据,得到重发eda消息数据;对所述重发eda消息数据进行消息重发。7.一种数据同步装置,其特征在于,所述装置包括:获取模块,用于获取消息发送系统发送的eda消息数据;提取模块,用于提取所述eda消息数据的eda消息标识、以及消息发送系统标识,根据所述eda消息标识,确定订阅所述eda消息数据的消息接收系统标识;
消息队列确定模块,用于根据所述eda消息标识、所述消息发送系统标识、以及所述消息接收系统标识,确定消息队列标识,并将所述eda消息数据加入至所述消息队列标识对应的消息队列;推送模块,用于推送所述消息队列中的eda消息数据至所述消息接收系统标识对应的消息接收系统。8.根据权利要求7所述的装置,其特征在于,所述消息队列确定模块还用于根据所述eda消息标识,确定事件类型以及所述事件类型对应的状态集合;获取所述eda消息数据携带的状态信息,基于所述状态信息以及所述事件类型对应的状态集合确定所述eda消息数据的状态标识;为所述eda消息数据的消息队列增加所述状态标识。9.根据权利要求7所述的装置,其特征在于,所述提取模块还用于获取所述eda消息数据的eda消息报文;对所述eda消息报文进行解析,确定eda消息标识以及消息发送系统标识。10.根据权利要求7所述的装置,其特征在于,所述数据同步装置还包括注册模块,用于接收消息发送系统的eda消息注册请求;基于所述eda消息注册请求,确定事件类型,生成所述事件类型的eda消息数据标识;将所述eda消息数据标识以及所述消息发送系统的消息发送系统标识关联存储,并将关联存储的所述eda消息数据标识以及所述消息发送系统的消息发送系统标识加入已注册消息事件列表。11.根据权利要求7所述的装置,其特征在于,所述数据同步装置还包括订阅模块,用于接收消息接收系统的订阅请求;提取所述订阅请求携带的消息接收系统标识以及需要订阅的eda消息标识;将所述消息接收系统标识添加至所述eda消息标识的已订阅系统列表。12.根据权利要求7所述的装置,其特征在于,所述数据同步装置还包括重发模块,用于根据所述消息队列标识,建立所述消息队列的消息发送流水表;在所述消息发送流水表中,记录所述消息队列中eda消息数据的发送结果;识别所述发送结果为失败、并满足预设发送条件的eda消息数据,得到重发eda消息数据;对所述重发eda消息数据进行消息重发。13.一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至6中任一项所述的方法的步骤。14.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至6中任一项所述的方法的步骤。15.一种计算机程序产品,包括计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至6中任一项所述的方法的步骤。
技术总结
本公开涉及大数据数据处理技术领域,具体公开了一种数据同步方法、装置、计算机设备、存储介质和计算机程序产品。方法通过获取消息发送系统发送的EDA消息数据;提取EDA消息数据的EDA消息标识、以及消息发送系统标识,根据EDA消息标识,确定订阅EDA消息数据的消息接收系统标识;根据EDA消息标识、消息发送系统标识、以及消息接收系统标识,确定消息队列标识,并将EDA消息数据加入至消息队列标识对应的消息队列;推送消息队列中的EDA消息数据至消息接收系统标识对应的消息接收系统。整个方案可在消息发送系统产生EDA消息数据时及时将EDA消息数据加入消息队列标识对应的消息队列,并推送至消息接收系统,提高了不同系统之间数据同步的效率以及及时性。步的效率以及及时性。步的效率以及及时性。
技术研发人员:李永春 邹伟力 张舜华 庞以新 庄海元 梁江玲
受保护的技术使用者:建信金融科技有限责任公司
技术研发日:2023.03.23
技术公布日:2023/7/21
版权声明
本文仅代表作者观点,不代表航空之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)
飞行汽车 https://www.autovtol.com/
上一篇:一种无螺丝化的筒灯的制作方法 下一篇:一种软件定义云网融合架构及路由实现方法
