本发明涉及数据处理,具体涉及一种交易数据处理方法、系统、设备及介质。
背景技术:
1、目前,在交易过程中需要使用数据库ogg技术,实现从源端数据同步到目标端,已使源、目标系统具备相同数据。应用系统写入源库后,目标库需要及时使用到该数据。
2、在支付行业,存在正交易(消费)和反交易(退款),对应地,通常正交易的数据存储在一个数据库中(即源库),反交易的数据存储在另一个数据库中(即目标库),两者分开,不互相干扰。为了实现反交易,需要将源库中的数据同步到目标库。
3、实现原理是正交易应用写入源库,通过抽取源端的日志文件(redolog),然后通过tcp/ip投递到目标端,最后解析还原应用到目标端,使目标端实现同源端数据同步,反交易通过访问目标库读取数据,在进行业务逻辑处理。
4、ogg技术虽然能够实现大量交易数据的捕捉,变换和投递,实现源数据库与目标数据库的数据同步,但常会存在6-10秒的数据延迟,另外,如果源库和目标库需要增加字段,ogg要停用更长时间,这种延迟会更长,影响用户体验。
5、相应地,本领域需要一种新的技术方案来解决上述问题。
技术实现思路
1、为了克服上述缺陷,提出了本发明,以提供解决或至少部分地解决源数据库与目标数据库的数据同步时存在数据延迟的技术问题的一种交易数据处理方法、系统、设备及介质。
2、在第一方面,提供一种交易数据处理方法,所述方法包括:
3、响应于正交易请求,将交易数据分别存储在内存数据库和第一持久化数据库中;
4、将所述第一持久化数据库中的交易数据同步到第二持久化数据库;
5、响应于反交易请求,判断所述反交易请求的时间与所述正交易请求的时间的差值是否小于预设时间;
6、根据判断结果,选择性地从所述内存数据库和第一持久化数据库之一中获取所述交易数据或者从所述第二持久化数据库中获取所述交易数据;
7、根据获取到的所述交易数据执行反交易;以及,
8、根据所述反交易的结果更新所述第二持久化数据库。
9、在上述交易数据处理方法的一个技术方案中,所述根据判断结果,选择性地从所述内存数据库和第一持久化数据库之一中获取所述交易数据或者从所述第二持久化数据库中获取所述交易数据,包括:
10、若所述反交易请求的时间与所述正交易请求的时间的差值小于所述预设时间,从所述内存数据库和第一持久化数据库之一中获取所述交易数据;
11、和/或,
12、若所述反交易请求的时间与所述正交易请求的时间的差值不小于所述预设时间,从所述第二持久化数据库中获取所述交易数据。
13、在上述交易数据处理方法的一个技术方案中,所述从所述内存数据库和第一持久化数据库之一中获取所述交易数据,包括:
14、根据交易订单号从所述内存数据库中查询所述交易数据;
15、若所述内存数据库中仍保留所述交易数据,则从所述内存数据库中获取所述交易数据,否则,从所述第一持久化数据库中查询所述交易数据以获得所述交易数据。
16、在上述交易数据处理方法的一个技术方案中,所述第一持久化数据库包括多个子持久化数据库,其中所述多个子持久化数据库使用不同的甬道进行区别;
17、所述将交易数据存储在第一持久化数据库中,包括:通过nginx从所述多个子持久化数据库中选择一个子持久化数据库从而存储所述交易数据;
18、所述从所述第一持久化数据库中查询所述交易数据以获得所述交易数据,包括:
19、遍历所有子持久化数据库,获得甬道信息;
20、根据所述甬道信息获得所述交易数据被存储在的所述子持久化数据库,从而得到所述交易数据。
21、在上述交易数据处理方法的一个技术方案中,所述根据获取到的所述交易数据执行反交易,包括:调用银联或网联接口执行所述反交易。
22、在上述交易数据处理方法的一个技术方案中,所述根据所述反交易的结果更新所述第二持久化数据库,包括:
23、若所述第二持久化数据库已经同步所述交易数据,则在所述银联或网联接口应答后,更新所述第二持久化数据库中的交易数据。
24、在上述交易数据处理方法的一个技术方案中,所述根据所述反交易的结果更新所述第二持久化数据库,包括:
25、若所述第二持久化数据库仍未同步所述交易数据,则在所述银联或网联接口应答后,将反交易对应的交易状态和金额存入临时表中;
26、在检测到所述第二持久化数据库同步了所述交易数据后,根据反交易请求的时间和订单号,从所述临时表中获取所述交易状态和金额,以更新所述第二持久化数据库中的所述交易数据。
27、在第二方面,提供一种交易数据处理系统,所述系统包括:
28、正交易单元、反交易单元、内存数据库、同步组件、第一持久化数据库和第二持久化数据库,其中,
29、响应于正交易请求,所述正交易单元将交易数据分别存储在所述内存数据库和所述第一持久化数据库中;
30、所述同步组件将所述第一持久化数据库中的交易数据同步到所述第二持久化数据库;
31、响应于反交易请求,所述反交易单元判断所述反交易请求的时间与所述正交易请求的时间的差值是否小于预设时间;
32、根据判断结果,所述反交易单元选择性地从所述内存数据库和第一持久化数据库之一中获取所述交易数据或者从所述第二持久化数据库中获取所述交易数据;
33、所述反交易单元根据获取到的所述交易数据执行反交易;以及,
34、所述反交易单元根据所述反交易的结果更新所述第二持久化数据库。
35、在上述交易数据处理系统的一个技术方案中,所述系统还包括网关,其中,
36、若所述反交易请求的时间与所述正交易请求的时间的差值小于所述预设时间,所述反交易单元访问所述网关;
37、所述网关根据交易订单号从所述内存数据库中查询所述交易数据;
38、若所述内存数据库中仍保留所述交易数据,所述网关则从所述内存数据库中获取所述交易数据并返回给所述反交易单元,否则,所述网关从所述第一持久化数据库中查询所述交易数据以获得所述交易数据并返回给所述反交易单元。
39、在上述交易数据处理系统的一个技术方案中,所述系统还包括nginx;
40、所述第一持久化数据库包括多个子持久化数据库,其中所述多个子持久化数据库使用不同的甬道进行区别;
41、响应于正交易请求,所述nginx从所述多个子持久化数据库中选择一个子持久化数据库从而存储所述交易数据;
42、所述网关遍历所有子持久化数据库,获得甬道信息;
43、所述网关根据所述甬道信息获得所述交易数据被存储在的所述子持久化数据库,从而得到所述交易数据。
44、在第三方面,提供一种电子设备,该电子设备包括处理器和存储装置,所述存储装置适于存储多条程序代码,所述程序代码适于由所述处理器加载并运行以执行上述交易数据处理方法的技术方案中任一项技术方案所述的交易数据处理方法。
45、在第四方面,提供一种计算机可读存储介质,该计算机可读存储介质其中存储有多条程序代码,所述程序代码适于由处理器加载并运行以执行上述交易数据处理方法的技术方案中任一项技术方案所述的交易数据处理方法。
46、本发明上述一个或多个技术方案,至少具有如下一种或多种
47、有益效果:
48、在实施本发明的技术方案中,响应于正交易请求,将交易数据分别存储在内存数据库和第一持久化数据库中;将第一持久化数据库中的交易数据同步到第二持久化数据库;响应于反交易请求,判断反交易请求的时间与正交易请求的时间的差值是否小于预设时间;根据判断结果,选择性地从内存数据库和第一持久化数据库之一中获取交易数据或者从第二持久化数据库中获取交易数据;根据获取到的交易数据执行反交易,以及,根据反交易的结果更新第二持久化数据库。通过上述实施方式,可做到数据库之间实时处理交易数据,在业务层面解决了数据时延迟的问题,从而避免了数据延迟带来的业务影响,提高了用户的使用体验。