分布式事务的处理方法、装置及电子设备制造方法及图纸

技术编号:31716756 阅读:72 留言:0更新日期:2022-01-01 11:23
本发明专利技术公开了一种分布式事务的处理方法、装置及电子设备,涉及金融科技领域。其中,该方法包括:在检测到主事务发生异常时,生成回滚指令,并根据回滚指令确定主事务所对应的至少一个代理子事务,其中,至少一个代理子事务与主事务对应的事务分支相对应,从而获取至少一个代理子事务对应的至少一条日志数据,其中,至少一条日志数据存储有对数据库中的数据进行操作的数据库操作信息,进而根据至少一条日志数据对主事务所对应的数据库中的数据进行恢复操作。本发明专利技术至少解决了现有技术中代码在从主机迁移至分布式平台后,由于无法自动恢复数据,导致的数据不一致的技术问题。导致的数据不一致的技术问题。导致的数据不一致的技术问题。

【技术实现步骤摘要】
分布式事务的处理方法、装置及电子设备


[0001]本专利技术涉及金融科技领域,具体而言,涉及一种分布式事务的处理方法、装置及电子设备。

技术介绍

[0002]随着大数据技术的发展,数据的存储以及处理已经越来越重要。与其他行业相比,金融行业每天产生的数据量更多,因此,金融行业普遍会采用分布式平台存储数据,并采用分布式事务的事务处理模式处理事务。
[0003]其中,分布式事务的事务处理模式要求在主事务发生异常时,能够进行相应的数据恢复操作,以保证数据库中数据一致性。但是,在金融行业中,存在许多在主机上进行代码编写,待编写完成后,将主机上的代码迁移至分布式平台上的场景,而对于这些从主机迁移至分布式平台的代码,在主事务发生异常时,不支持自动恢复数据,而是需要人工干预才能恢复数据,该过程会耗费大量的人力,造成不必要的人工成本的浪费。

技术实现思路

[0004]本专利技术实施例提供了一种分布式事务的处理方法、装置及电子设备,以至少解决现有技术中代码在从主机迁移至分布式平台后,由于无法自动恢复数据,导致的数据不一致的问题。
[0005]根据本专利技术实施例的一个方面,提供了一种分布式事务的处理方法,该方法包括:在检测到主事务发生异常时,生成回滚指令,并根据回滚指令确定主事务所对应的至少一个代理子事务,其中,至少一个代理子事务与主事务对应的事务分支相对应,从而获取至少一个代理子事务对应的至少一条日志数据,其中,至少一条日志数据存储有对数据库中的数据进行操作的数据库操作信息,进而根据至少一条日志数据对主事务所对应的数据库中的数据进行恢复操作。
[0006]进一步地,分布式事务的处理方法还包括:在获取至少一个代理子事务对应的至少一条日志数据之前,在主事务开启并检测到对数据库中的数据进行操作之后,获取数据库操作信息,并存储数据库操作信息至至少一条日志数据中。
[0007]进一步地,分布式事务的处理方法还包括:在存储数据库操作信息至至少一条日志数据中时,获取主事务对应的主事务标识以及至少一个代理子事务对应的代理子事务标识,并基于主事务标识以及代理子事务标识,将至少一条日志数据与主事务进行关联,其中,一个主事务标识可对应至少一个代理子事务标识,至少一条日志数据至少包括:主事务标识、代理子事务标识、对数据库中的数据进行修改之前的第一数据、对数据库中的数据进行修改之后的第二数据以及数据库操作类型。
[0008]进一步地,分布式事务的处理方法还包括:根据主事务标识和代理子事务标识,从预设存储区域中获取至少一条日志数据,并确定至少一条日志数据所对应的数据库操作类型,从而根据数据库操作类型对数据库中的数据进行恢复操作。
[0009]进一步地,分布式事务的处理方法还包括:在数据库操作类型为数据更新操作时,从至少一条日志数据中获取第二数据,并根据第二数据的第一主键确定数据库中数据更新后的当前数据,并判断当前数据与第二数据是否相同,从而在当前数据与第二数据相同时,将当前数据更新为第一数据。
[0010]进一步地,分布式事务的处理方法还包括:在当前数据与第二数据不同时,确定主事务处于预设状态,并生成回滚失败的提示信息,其中,预设状态表征了其他主事务对第二数据进行了数据操作。
[0011]进一步地,分布式事务的处理方法还包括:在数据库操作类型为数据插入操作时,从至少一条日志数据中获取第二数据,从而根据第二数据的第二主键确定数据库中的数据插入位置,并删除位于数据插入位置处的当前数据。
[0012]进一步地,分布式事务的处理方法还包括:在数据库操作类型为数据删除操作时,从至少一条日志数据中获取第一数据,从而根据第一数据的第三主键确定数据库中的数据删除位置,并将第一数据插入至数据删除位置。
[0013]根据本专利技术实施例的另一个方面,还提供了一种分布式事务的处理装置,包括:生成模块,用于在检测到主事务发生异常时,生成回滚指令;确定模块,用于根据回滚指令确定主事务所对应的至少一个代理子事务,其中,至少一个代理子事务与主事务对应的事务分支相对应;获取模块,用于获取至少一个代理子事务对应的至少一条日志数据,其中,至少一条日志数据存储有对数据库中的数据进行操作的数据库操作信息;恢复模块,用于根据至少一条日志数据对主事务所对应的数据库中的数据进行恢复操作。
[0014]根据本专利技术实施例的另一个方面,还提供了一种计算机可读存储介质,其特征在于,计算机可读存储介质中存储有计算机程序,其中,计算机程序被设置为运行时执行上述的分布式事务的处理方法。
[0015]根据本专利技术实施例的另一个方面,还提供了一种电子设备,其特征在于,电子设备包括一个或多个处理器;存储装置,用于存储一个或多个程序,当一个或多个程序被一个或多个处理器执行时,使得一个或多个处理器实现用于运行程序,其中,程序被设置为运行时执行上述的分布式事务的处理方法。
[0016]在本专利技术实施例中,采用通过至少一条日志数据存储数据库操作信息,从而根据至少一条日志数据对数据库中的数据进行恢复的方式,通过在检测到主事务发生异常时,生成回滚指令,从而根据回滚指令确定主事务所对应的至少一个代理子事务,其中,至少一个代理子事务与主事务对应的事务分支相对应,并获取至少一个代理子事务对应的至少一条日志数据,其中,至少一条日志数据存储有对数据库中的数据进行操作的数据库操作信息,进而根据至少一条日志数据对主事务所对应的数据库中的数据进行恢复操作。
[0017]在上述过程中,由于处理器可通过至少一个代理子事务获取对应的至少一条日志数据,并且至少一条日志数据中会存储有对数据库中的数据进行操作的数据库操作信息,因此,在主事务发生异常时,处理器根据至少一条日志数据,即可对主事务所对应的数据库中的数据进行恢复操作,从而避免了在代码从主机迁移至分布式平台后,主事务发生异常时,由于无法自动恢复数据,导致的数据库中的数据不一致的问题。
[0018]由此可见,本申请所提供的方案达到了在主事务发生异常时,自动恢复数据库中的数据的目的,从而实现了避免大量人工恢复数据,节约人工成本的效果,进而解决了在代
码从主机迁移至分布式平台后,主事务发生异常时,由于无法自动恢复数据,导致的数据库中的数据不一致的问题。
附图说明
[0019]此处所说明的附图用来提供对本专利技术的进一步理解,构成本申请的一部分,本专利技术的示意性实施例及其说明用于解释本专利技术,并不构成对本专利技术的不当限定。在附图中:
[0020]图1是现有技术中一种可选的分布式事务的处理方法的流程图;
[0021]图2是根据本专利技术实施例的一种可选的分布式事务的处理方法的流程图;
[0022]图3是根据本专利技术实施例的一种可选的分布式事务的处理方法的流程图;
[0023]图4是根据本专利技术实施例的一种可选的分布式事务的处理方法的流程图;
[0024]图5是根据本专利技术实施例的一种可选的分布式事务的处理装置示意图。
具体实施方式
[0025]为了使本
的人员更好地理解本本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种分布式事务的处理方法,其特征在于,包括:在检测到主事务发生异常时,生成回滚指令;根据所述回滚指令确定所述主事务所对应的至少一个代理子事务,其中,所述至少一个代理子事务与所述主事务对应的事务分支相对应;获取所述至少一个代理子事务对应的至少一条日志数据,其中,所述至少一条日志数据存储有对数据库中的数据进行操作的数据库操作信息;根据所述至少一条日志数据对所述主事务所对应的所述数据库中的数据进行恢复操作。2.根据权利要求1所述的方法,其特征在于,在获取所述至少一个代理子事务对应的至少一条日志数据之前,所述方法还包括:在所述主事务开启并检测到对所述数据库中的数据进行操作之后,获取所述数据库操作信息;存储所述数据库操作信息至所述至少一条日志数据中。3.根据权利要求2所述的方法,其特征在于,在存储所述数据库操作信息至所述至少一条日志数据中时,所述方法还包括:获取所述主事务对应的主事务标识以及所述至少一个代理子事务对应的代理子事务标识;基于所述主事务标识以及所述代理子事务标识,将所述至少一条日志数据与所述主事务进行关联,其中,一个所述主事务标识可对应至少一个所述代理子事务标识,所述至少一条日志数据至少包括:所述主事务标识、所述代理子事务标识、对所述数据库中的数据进行修改之前的第一数据、对所述数据库中的数据进行修改之后的第二数据以及数据库操作类型。4.根据权利要求3所述的方法,其特征在于,根据所述至少一条日志数据对所述主事务所对应的数据库中的数据进行恢复操作,包括:根据所述主事务标识和所述代理子事务标识,从预设存储区域中获取所述至少一条日志数据;确定所述至少一条日志数据所对应的数据库操作类型;根据所述数据库操作类型对所述数据库中的数据进行恢复操作。5.根据权利要求4所述的方法,其特征在于,根据所述数据库操作类型对所述数据库中的数据进行恢复操作,包括:在所述数据库操作类型为数据更新操作时,从所述至少一条日志数据中获取所述第二数据;根据所述第二数据的第一主键确定所述数据库中数据更新后的当前数据,并判断所述当前数据与所述第二数据是否相同;在所述当前数...

【专利技术属性】
技术研发人员:李英灯林德坤祁有盛
申请(专利权)人:中国工商银行股份有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1