一种分布式事务实现方法、装置、电子设备及存储介质制造方法及图纸

技术编号:24091245 阅读:23 留言:0更新日期:2020-05-09 08:10
本发明专利技术实施例提供了一种分布式事务实现方法、装置、电子设备及存储介质,可以按照预设的执行顺序执行目标分布式事务包含的多个目标操作。当多个目标操作执行结束时,可以按照提交顺序依次判断多个目标操作的提交标识是否为预设的可提交标识。如果第一目标操作的提交标识为可提交标识,向第一目标操作及待提交目标操作对应的数据库发送提交指令,以完成目标分布式事务的提交。基于上述处理,根据提交标识,可以直接指示数据库对该数据库中的数据进行处理,相对于两阶段的预提交方式,减少了与数据库的对话次数,能够提高分布式事务的处理效率。

A distributed transaction implementation method, device, electronic equipment and storage medium

【技术实现步骤摘要】
一种分布式事务实现方法、装置、电子设备及存储介质
本专利技术涉及数据库
,特别是涉及一种分布式事务实现方法、装置、电子设备及存储介质。
技术介绍
数据库是数据以一种能够持久保存,并且可以被操作的方式保存的数据集合。随着互联网业务的不断发展,对于一次业务请求,不再是通过访问某一数据库就可以完成,可能需要访问多个数据库。对于一个跨多个数据库的业务请求,需要保证操作过程中各数据库中数据的一致,即实现多数据库的分布式事务。为了实现多数据库的分布式事务,现有技术使用两阶段提交方式。具体流程如下:阶段一:事务管理器向分布式事务相关的各数据库发送预提交指令,确认各数据库是否可以提交各自的操作。如果可以提交操作,数据库向事务管理器返回预提交成功的消息。如果无法提交操作,数据库向事务管理器返回预提交失败的消息。阶段二:事务管理器接收各数据库返回的预提交消息,如果都是预提交成功,则向各数据库发送正式提交指令,以指示分布式事务相关的各数据库根据对应的操作对数据库中的数据进行处理。各数据库接收到正式提交指令后进行正式提交,以完成分布式事务的提交。由上述可以看出,现有技术中,事务管理器需要分别与各数据库进行预提交和正式提交两次对话,导致分布式事务处理效率低。
技术实现思路
本专利技术实施例的目的在于提供一种分布式事务实现方法、装置、电子设备及计算机可读存储介质,以提高分布式事务的处理效率。具体技术方案如下:第一方面,为了达到上述目的,本专利技术实施例公开了一种分布式事务实现方法,上述方法包括:按照预设的执行顺序执行目标分布式事务包含的多个目标操作;当所述多个目标操作执行结束时,按照提交顺序依次判断所述多个目标操作的提交标识是否为预设的可提交标识,其中,所述提交顺序为与所述执行顺序相逆的顺序;在所述多个目标操作中的第一目标操作的提交标识为所述可提交标识的情况下,向所述第一目标操作及待提交目标操作对应的数据库发送提交指令,其中,所述待提交目标操作包括:所述多个目标操作中按照所述提交顺序在所述第一目标操作之前的未提交的目标操作;所述提交指令用于指示数据库根据对应的目标操作对该数据库中的数据进行处理。可选的,所述按照预设的执行顺序执行目标分布式事务包含的多个目标操作,包括:按照预设的执行顺序,针对目标分布式事务包含的每一目标操作,判断预设的数据与数据库的对应关系中,是否存在该目标操作需要处理的目标数据;如果存在所述目标数据,将所述对应关系中,与所述目标数据对应的数据库,确定为该目标操作对应的目标数据库;如果不存在所述目标数据,根据预设的分库规则,为所述目标数据分配对应的数据库,作为该目标操作对应的目标数据库;将该目标操作发送至对应的目标数据库执行。可选的,在所述为所述目标数据分配对应的数据库,作为该目标操作对应的目标数据库之后,所述方法还包括:存储所述目标数据与所述目标数据库的对应关系。可选的,在所述将该目标操作发送至对应的目标数据库执行之后,所述方法还包括:获取该目标操作对应的目标数据库返回的执行结果;如果所述执行结果为执行异常,向所述目标分布式事务中已执行成功的目标操作对应的数据库发送回滚指令,不再执行该目标操作之后的其他目标操作,所述回滚指令用于指示数据库恢复至该数据库执行对应的目标操作之前的状态。可选的,所述向所述目标分布式事务中已执行成功的目标操作对应的数据库发送回滚指令,包括:从该目标操作开始,按照所述提交顺序依次判断每一目标操作的提交标识是否为所述可提交标识;在所述多个目标操作中的第二目标操作的提交标识为所述可提交标识的情况下,向目标回滚操作对应的数据库发送回滚指令,其中,所述目标回滚操作包括所述第二目标操作、以及所述多个目标操作中按照所述执行顺序在所述执行异常的目标操作与所述第二目标操作之间的目标操作。第二方面,为达到上述目的,本专利技术实施例公开了一种分布式事务实现装置,上述装置包括:执行模块,用于按照预设的执行顺序执行目标分布式事务包含的多个目标操作;判断模块,用于当所述多个目标操作执行结束时,按照提交顺序依次判断所述多个目标操作的提交标识是否为预设的可提交标识,其中,所述提交顺序为与所述执行顺序相逆的顺序;发送模块,用于在所述多个目标操作中的第一目标操作的提交标识为所述可提交标识的情况下,向所述第一目标操作及待提交目标操作对应的数据库发送提交指令,其中,所述待提交目标操作包括:所述多个目标操作中按照所述提交顺序在所述第一目标操作之前的未提交的目标操作;所述提交指令用于指示数据库根据对应的目标操作对该数据库中的数据进行处理。可选的,所述执行模块,具体用于按照预设的执行顺序,针对目标分布式事务包含的每一目标操作,判断预设的数据与数据库的对应关系中,是否存在该目标操作需要处理的目标数据;如果存在所述目标数据,将所述对应关系中,与所述目标数据对应的数据库,确定为该目标操作对应的目标数据库;如果不存在所述目标数据,根据预设的分库规则,为所述目标数据分配对应的数据库,作为该目标操作对应的目标数据库;将该目标操作发送至对应的目标数据库执行。可选的,所述执行模块,还用于存储所述目标数据与所述目标数据库的对应关系。可选的,所述执行模块,还用于获取该目标操作对应的目标数据库返回的执行结果;如果所述执行结果为执行异常,向所述目标分布式事务中已执行成功的目标操作对应的数据库发送回滚指令,不再执行该目标操作之后的其他目标操作,所述回滚指令用于指示数据库恢复至该数据库执行对应的目标操作之前的状态。可选的,所述执行模块,具体用于从该目标操作开始,按照所述提交顺序依次判断每一目标操作的提交标识是否为所述可提交标识;在所述多个目标操作中的第二目标操作的提交标识为所述可提交标识的情况下,向目标回滚操作对应的数据库发送回滚指令,其中,所述目标回滚操作包括所述第二目标操作、以及所述多个目标操作中按照所述执行顺序在所述执行异常的目标操作与所述第二目标操作之间的目标操作。在本专利技术实施的另一方面,为了达到上述目的,本专利技术实施例还公开了一种电子设备,上述电子设备包括处理器和存储器;上述存储器,用于存放计算机程序;上述处理器,用于执行上述存储器上所存放的程序时,实现如上述第一方面所述的分布式事务实现方法。在本专利技术实施的又一方面,还提供了一种计算机可读存储介质,上述计算机可读存储介质中存储有指令,当其在计算机上运行时,实现如上述第一方面所述的分布式事务实现方法。在本专利技术实施的又一方面,本专利技术实施例还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述第一方面所述的分布式事务实现方法。本专利技术实施例提供的一种分布式事务实现方法、装置、电子设备及计算机可读存储介质,按照预设的执行顺序执行目标分布式事务包含的多个目标操作,当多个目标操作执行结束时,按照提交顺序依次判断多个本文档来自技高网...

【技术保护点】
1.一种分布式事务实现方法,其特征在于,所述方法包括:/n按照预设的执行顺序执行目标分布式事务包含的多个目标操作;/n当所述多个目标操作执行结束时,按照提交顺序依次判断所述多个目标操作的提交标识是否为预设的可提交标识,其中,所述提交顺序为与所述执行顺序相逆的顺序;/n在所述多个目标操作中的第一目标操作的提交标识为所述可提交标识的情况下,向所述第一目标操作及待提交目标操作对应的数据库发送提交指令,其中,所述待提交目标操作包括:所述多个目标操作中按照所述提交顺序在所述第一目标操作之前的未提交的目标操作;所述提交指令用于指示数据库根据对应的目标操作对该数据库中的数据进行处理。/n

【技术特征摘要】
1.一种分布式事务实现方法,其特征在于,所述方法包括:
按照预设的执行顺序执行目标分布式事务包含的多个目标操作;
当所述多个目标操作执行结束时,按照提交顺序依次判断所述多个目标操作的提交标识是否为预设的可提交标识,其中,所述提交顺序为与所述执行顺序相逆的顺序;
在所述多个目标操作中的第一目标操作的提交标识为所述可提交标识的情况下,向所述第一目标操作及待提交目标操作对应的数据库发送提交指令,其中,所述待提交目标操作包括:所述多个目标操作中按照所述提交顺序在所述第一目标操作之前的未提交的目标操作;所述提交指令用于指示数据库根据对应的目标操作对该数据库中的数据进行处理。


2.根据权利要求1所述的方法,其特征在于,所述按照预设的执行顺序执行目标分布式事务包含的多个目标操作,包括:
按照预设的执行顺序,针对目标分布式事务包含的每一目标操作,判断预设的数据与数据库的对应关系中,是否存在该目标操作需要处理的目标数据;
如果存在所述目标数据,将所述对应关系中,与所述目标数据对应的数据库,确定为该目标操作对应的目标数据库;
如果不存在所述目标数据,根据预设的分库规则,为所述目标数据分配对应的数据库,作为该目标操作对应的目标数据库;
将该目标操作发送至对应的目标数据库执行。


3.根据权利要求2所述的方法,其特征在于,在所述为所述目标数据分配对应的数据库,作为该目标操作对应的目标数据库之后,所述方法还包括:
存储所述目标数据与所述目标数据库的对应关系。


4.根据权利要求2所述的方法,其特征在于,在所述将该目标操作发送至对应的目标数据库执行之后,所述方法还包括:
获取该目标操作对应的目标数据库返回的执行结果;
如果所述执行结果为执行异常,向所述目标分布式事务中已执行成功的目标操作对应的数据库发送回滚指令,不再执行该目标操作之后的其他目标操作,所述回滚指令用于指示数据库恢复至该数据库执行对应的目标操作之前的状态。


5.根据权利要求4所述的方法,其特征在于,所述向所述目标分布式事务中已执行成功的目标操作对应的数据库发送回滚指令,包括:
从该目标操作开始,按照所述提交顺序依次判断每一目标操作的提交标识是否为所述可提交标识;
在所述多个目标操作中的第二目标操作的提交标识为所述可提交标识的情况下,向目标回滚操作对应的数据库发送回滚指令,其中,所述目标回滚操作包括所述第二目标操作、以及所述多个目标操作中按照所述执行顺序在所述执行异常的目标操作与所述第二目标操作之间的目标操作。


6.一种分布式事务实现装置,其特征在于,所述装置包括:
执行模块,用于按照预...

【专利技术属性】
技术研发人员:苗佳许亚明
申请(专利权)人:北京金山云网络技术有限公司北京金山云科技有限公司
类型:发明
国别省市:北京;11

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

1