分布式事务处理方法、分布式系统及计算机可读存储介质与流程

文档序号:17488873发布日期:2019-04-23 20:14阅读:139来源:国知局
分布式事务处理方法、分布式系统及计算机可读存储介质与流程

本发明涉及计算机技术领域,尤其涉及分布式事务处理方法、分布式系统及计算机可读存储介质。



背景技术:

由于数据资源的不断增加,使用一个服务器进行数据的处理和分析已然不能满足大部分企业的需求,由此出现了分布式事务系统。分布式事务是指事务的参与者、支持事务的服务器、资源服务器以及事务服务器分别位于分布式系统的不同节点之上,分布式事务的解决方案包括xa二阶段提交、2pc、事务型mq等等,在通过这些解决方案进行分布式事务处理时,事件的投递均不太可靠,而且系统宕机时无法保证事务的一致性。



技术实现要素:

本发明的主要目的在于提供一种分布式事务处理方法、分布式系统及计算机可读存储介质,旨在解决目前分布式事务系统事件投递均不太可靠,而且系统宕机后无法保证事务一致性的问题。

为实现上述目的,本发明提供一种分布式事务处理方法,应用于分布式系统,所述分布式系统包括协调者,执行者以及活动管理器;所述方法包括步骤:

所述协调者获取所述执行者发起的任务请求;

所述协调者根据所述任务请求,执行尝试try操作,其中,所述协调者执行try操作的步骤包括调用第三方系统接口进行数据处理;

所述协调者获取所述第三方系统接口被调用时的数据处理结果;

当所述数据处理结果为失败时,所述协调者将所述try操作的执行结果置为未知,并通过询问query接口对所述第三方系统接口进行反查,以确定所述第三方系统接口被调用时的数据处理结果是否属实;

当通过所述query接口确定所述数据处理结果属实时,所述协调者将所述try操作的执行结果修改为失败;

当通过所述query接口确定所述数据处理结果不属实时,所述协调者将所述try操作的执行结果修改为成功;

在所述执行结果为成功或失败时,所述协调者将所述try操作的执行结果反馈给所述执行者,以使所述执行者根据所述try操作的执行结果触发所述活动管理器调用对应的接口进行事务处理。

可选地,所述协调者将所述try操作的执行结果置为未知的步骤之前,还包括:

当所述数据处理结果为失败时,所述协调者判断所述第三方系统接口是否为敏感性接口;

当所述第三方系统接口为敏感性接口时,所述协调者执行将所述try操作的执行结果置为未知的步骤;

当所述第三方系统接口为非敏感性接口时,所述协调者将所述try操作的执行结果置为失败。

可选地,所述通过query接口对所述第三方系统接口进行反查,以确定所述第三方系统接口被调用时的数据处理结果是否属实的步骤包括:

所述协调者通过所述query接口对所述第三方系统接口进行反查;

当所述query接口反馈所述第三方系统接口仍在进行所述任务请求对应的数据处理时,所述协调者每间隔预设时间重新执行所述通过所述query接口对所述第三方系统接口进行反查的步骤,直至确定所述数据处理结果属实或不属实为止。

可选地,所述协调者根据所述任务请求,执行try操作的步骤包括:

所述协调者根据所述任务请求执行try操作,并统计所述try的执行时长;

所述方法还包括:

当所述执行时长达到预设阈值,且所述协调者仍未确定所述数据处理结果是否属实时,所述协调者发送触发指令给所述执行者,以使所述执行者触发所述活动管理器调用所述协调者的取消cancel接口执行cancel操作。

可选地,所述在所述执行结果为成功或失败时,所述协调者将所述try操作的执行结果反馈给所述执行者,以使所述执行者根据所述try操作的执行结果触发所述活动管理器调用对应的接口进行事务处理的步骤包括:

当所述执行结果为成功时,所述协调者将所述try操作的执行结果反馈给所述执行者,以使所述执行者根据所述try操作的执行结果触发所述活动管理器调用所述协调者的批准confirm接口执行confirm操作;

当所述执行结果为失败时,所述协调者将所述try操作的执行结果反馈给所述执行者,以使所述执行者根据所述try操作的执行结果触发所述活动管理器调用所述协调者的取消cancel接口执行cancel操作。

可选地,所述在所述执行结果为成功或失败时,所述协调者将所述try操作的执行结果反馈给所述执行者,以使所述执行者根据所述try操作的执行结果触发所述活动管理器调用对应的接口进行事务处理的步骤之后,所述方法还包括:

所述协调者执行回调callback操作,以将所述confirm操作或所述cancel操作的执行结果返回给所述执行者。

可选地,所述协调者执行callback操作的步骤的同时,还执行以下步骤:

所述协调者根据所述执行结果执行所述分布式事务嵌套的子事务;其中,所述协调者根据所述执行结果执行所述分布式事务嵌套的子事务的步骤包括:

当所述执行结果为成功时,所述协调者对所述子事务执行confirm操作;

当所述执行结果为失败时,所述协调者对所述子事务执行cancel操作。

为实现上述目的,本发明还提供一种分布式系统,所述分布式系统包括协调者,执行者以及活动管理器,所述协调者包括:

获取模块,用于获取所述执行者发起的任务请求;

执行模块,用于根据所述任务请求,执行尝试try操作,其中,所述执行模块执行try操作的步骤包括调用第三方系统接口进行数据处理;

所述获取模块,还用于获取所述第三方系统接口被调用时的数据处理结果;

处理模块,用于当所述数据处理结果为失败时,将所述try操作的执行结果置为未知;

反查模块,用于通过询问query接口对所述第三方系统接口进行反查,以确定所述第三方系统接口被调用时的数据处理结果是否属实;

修改模块,用于当通过所述query接口确定所述数据处理结果属实时,将所述try操作的执行结果修改为失败;当通过所述query接口确定所述数据处理结果不属实时,将所述try操作的执行结果修改为成功;

反馈模块,用于在所述执行结果为成功或失败时,将所述try操作的执行结果反馈给所述执行者,以使所述执行者根据所述try操作的执行结果触发所述活动管理器调用对应的接口进行事务处理。

为实现上述目的,本发明还提供一种分布式系统,所述分布式系统包括:协调者,执行者以及活动管理器,所述协调者包括:通信模块、存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述计算机程序被所述处理器执行时实现如上所述的分布式事务处理方法的步骤。

为实现上述目的,本发明还提供一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如上所述的分布式事务处理方法的步骤。

本发明提供的分布式事务处理方法、分布式系统及计算机可读存储介质,在第三方系统接口数据处理失败时,不相信第三方系统接口处理失败的结果,由协调者通过增加的询问query接口进行反查,以确定所述第三方系统接口的数据处理结果是否属实,从而对尝试try操作的执行结果进行修正,因此保证了数据分析处理过程中分布式事件投递的可靠性,而且执行操作过程中,即使系统宕机也可以通过query接口进行数据处理结果的反查,保证了分布式事务的一致性。

附图说明

图1是本发明实施例方案涉及的分布式系统的结构示意图;

图2为本发明实施例方案涉及的协调者的结构示意图;

图3为本发明分布式事务处理方法的第一实施例的流程示意图;

图4为本发明分布式事务处理方法的第二实施例中步骤s40的细化流程示意图;

图5为本发明分布式事务处理方法的第三实施例的流程示意图;

图6为本发明分布式系统中协调者的一功能模块示意图。

本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。

具体实施方式

应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。

请参照图1,图1为本发明各个实施例中的分布式系统的模块示意图,本发明所提供的分布式事务系统基于tcc(try-confirm-cancel,尝试-批准-取消)机制,其是通过对业务系统提供的业务逻辑的调度来实现分布式事务。基于tcc的分布式系统包括执行者、协调者和活动管理器。目前采用的tcc方案是由执行者负责发起任务,协调者实现tcc机制中具体的操作接口任务,操作接口包括尝试try接口、批准confirm接口以及取消cancel接口。而活动管理器则负责整体监控整个任务活动,包括记录tcc机制中协调者执行任务的任务状态,以及在初步确认操作成功时,调用协调者的confirm接口执行confirm操作;反之,则执行cancel操作。

请一并参看图2,图2为本发明所提供的分布式系统中协调者的硬件结构示意图。所述协调者可以包括通信模块10、存储器20以及处理器30等部件。在所述协调者中,所述处理器30分别与所述存储器20以及所述通信模块10连接,所述存储器20上存储有计算机程序,所述计算机程序同时被处理器30执行。

通信模块10,可通过网络与外部通讯设备连接,例如与执行者或者其他协调者连接。通信模块10可以接收外部通讯设备发出的请求,还可以发送请求、控制指令及信息至所述外部通讯设备。所述外部通讯设备可以是服务器或者其他设备终端。

存储器20,可用于存储软件程序以及各种数据。存储器20可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序(比如调用第三方系统接口)等;存储数据区可包括数据库,存储数据区可存储根据协调者的使用所创建的数据或信息等。此外,存储器20可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。

处理器30,是协调者的控制中心,利用各种接口和线路连接整个协调者的各个部分,通过运行或执行存储在存储器20内的软件程序和/或模块,以及调用存储在存储器20内的数据,执行协调者的各种功能和处理数据,从而对协调者进行整体监控。处理器30可包括一个或多个处理单元;可选地,处理器30可集成应用处理器和调制解调处理器,其中,应用处理器主要处理操作系统、用户界面和应用程序等,调制解调处理器主要处理无线通信。可以理解的是,上述调制解调处理器也可以不集成到处理器30中。

尽管图2未示出,但上述协调者还可以包括电路控制模块,用于与电源连接,保证其他部件的正常工作。本领域技术人员可以理解,图1和图2中示出的协调者结构并不构成对协调者的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。

基于上述硬件结构,提出本发明方法各个实施例。

参见图3,在本发明分布式事务处理方法的第一实施例中,包括步骤:

步骤s10,所述协调者获取所述执行者发起的任务请求;

在tcc机制中,执行者发起任务请求后,协调者接收并响应该任务请求,从而开始执行具体的任务操作。以转账业务为例,执行者发起转账任务请求,协调者根据转账任务请求的内容,执行具体的转账任务。其中,任务请求包括需要协调者执行的具体业务内容,可以包括任务需要涉及的交互对象、任务所涉及的资产金额,任务对象的账号信息等等。

步骤s20,所述协调者根据所述任务请求,执行尝试try操作,其中,所述协调者执行try操作的步骤包括调用第三方系统接口进行数据处理;

当协调者接收到任务请求后,由执行者调用协调者的try接口,使协调者执行try操作,从而对分布式事务系统进行检测以及资源预留。仍以转账业务为例,假设存在a和b两个账户,任务请求是a向b转账30元,首先协调者在执行try操作时,需要检测a和b账户状态是否正常,例如账户休眠或冻结即为不正常,还需要检测a账户的余额是否够用,然后在检测通过后,冻结a账户中的30元,并向支付公司发起转账交易。

步骤s30,所述协调者获取所述第三方系统接口被调用时的数据处理结果;

在执行try操作时,需要调用第三方系统的接口,例如调用第三方支付系统的接口。目前在基于tcc机制的分布式系统中,try操作的执行结果是直接根据调用第三方系统接口的数据处理结果来确定的。在进行第三方系统接口调用时,可能因网络波动或第三方系统异常等原因,使得协调者接收到的第三方系统接口返回的数据处理结果为失败。

需要说明的是,如果第三方系统接口被调用时的数据处理结果为成功时,则认为try操作的执行结果为成功,可以由活动管理器调用协调者的confirm接口执行confirm操作。

步骤s40,当所述数据处理结果为失败时,所述协调者将所述try操作的执行结果置为未知,并通过询问query接口对所述第三方系统接口进行反查,以确定所述第三方系统接口被调用时的数据处理结果是否属实;若是,则执行步骤s50;若否,则执行步骤s60;

可能某些时候第三方系统实际数据处理已经成功,但受网络波动等因素影响,反馈给协调者的数据处理结果是失败,因此协调者可以暂时将try操作的执行结果置为未知,然后通过增加的询问query接口进行query反查操作,使协调者的query接口根据业务流水号向第三方系统接口反查确认第三方系统接口被调用时的数据处理结果是否属实,从而来修正分布式事务中try操作的执行结果。询问query接口的反查设置,相当于在tcc机制中增加了一道反查补偿机制,因此本实施例的分布式系统也可以说是基于tqcc(try-query-confirm-cancel)机制。

步骤s50,所述协调者将所述try操作的执行结果修改为失败;

步骤s60,所述协调者将所述try操作的执行结果修改为成功;

通过query接口进行反查,才能确定第三方系统的实际数据处理结果是否真实,由此再根据确认的第三方系统的实际数据处理结果修改try操作的执行状态。

步骤s70,在所述执行结果为成功或失败时,所述协调者将所述try操作的执行结果反馈给所述执行者,以使所述执行者根据所述try操作的执行结果触发所述活动管理器调用对应的接口进行事务处理。

try操作的执行结果确认为成功或失败,才能进行下一步动作,如果try操作结果仍然为未知,则不会执行后续的操作。在tcc机制的try操作执行之后,还剩下confirm操作和cancel操作,而在同一个业务内容中confirm操作和cancel操作为并列关系,在执行时是根据try操作的执行结果决定的。

当所述执行结果为成功时,所述协调者将所述try操作的执行结果反馈给所述执行者,以使所述执行者根据所述try操作的执行结果触发所述活动管理器调用所述协调者的批准confirm接口执行confirm操作。在confirm操作执行时,可以做类似try操作时执行的业务检查,然后将try操作冻结的资源转移至任务请求中请求的对象。

当所述执行结果为失败时,所述协调者将所述try操作的执行结果反馈给所述执行者,以使所述执行者根据所述try操作的执行结果触发所述活动管理器调用所述协调者的取消cancel接口执行cancel操作。其中cancel操作即是取消业务执行,其释放了try操作预留的资源,使事务状态回滚到事务的初始状态。

仍然以转账业务为例进行说明,如果try操作成功,则confirm操作的步骤包括将a账户中冻结的30元扣除,支付公司会将30元转账给b账户,b账户的余额增加30元。如果try操作失败,则cancel操作的步骤包括取消try操作中的资源预留,a账户冻结的资金解冻,a和b账户的资金不变。

可选地,数据处理结果和执行结果的显示可以用数字、中文字符以及英文中的至少一种进行标示。例如,数据处理成功可以表示为“success”,数据处理失败可以表示为“fail”,数据处理结果未知可以表示为“unkown”。

本实施例在第三方系统接口数据处理失败时,不相信第三方系统接口处理失败的结果,由协调者通过增加的询问query接口进行反查,以确定查询所述第三方系统接口的数据处理结果是否属实,从而对尝试try操作的执行结果进行修正,使query接口主动去外部第三方系统查询数据处理结果,确保了事务处理双方数据的一致性,能提高try操作中调用第三方接口异常时事件投递的可靠性,此外系统宕机后try操作数据结果显示失败,通过反查操作保证和确认了分布式事务数据处理的一致性。

需要说明的是,由于本方案涉及的是分布式系统,因此协调者的各种服务接口均存在多个,可以建立服务接口存活列表,该服务接口存活列表中存储有每种接口的作用,每个接口的数量,以及每个接口目前是否被调用等。可以根据dubbo负载均衡算法从服务接口存活列表中选择一个可用的服务接口供执行者进行调用,以避免接口调用失败。该dubbo负载均衡算法自带有轮询和随机分配两种负载均衡执行机制,其中随机分配是按照权重设置随机概率,轮询是按照公约后的权重设置轮询比例,例如将处理较慢或性能较慢的服务接口的权重调低。通过设置服务接口存活列表并调整各接口的执行情况,能有效调动协调者的服务接口资源,提升事务处理效率,避免接口调用失败。

在本实施例中,当协调者在一个分布式事务中调用多个接口执行任务时,事务中的接口任务可以在不同的机器上执行,其中try接口串行执行每一个接口任务,并会在try操作执行后将状态记录在数据库中,confirm接口或者cancel接口则会根据状态线程并发执行。所有的try接口、confirm接口以及cancel接口所分别对应的状态,协调者都会统一自动记录在数据库中,使得系统即使宕机也能自动执行未完成的操作。

进一步地,请参阅图4,在本发明分布式事务处理方法的第二实施例中,所述步骤s40包括:

步骤s41,当所述数据处理结果为失败时,所述协调者判断所述第三方系统接口是否为敏感性接口;若否,则执行步骤s42;若是,则执行步骤s43;

本实施例与第一实施例相比,其区别在于,对于不同的第三方系统接口进行了类型区分,分为非敏感性接口和敏感性接口,敏感性接口一般为事务中涉及用户资产交易和/或隐私机密的接口,非敏感性接口一般是在整个事务系统中实现辅助功能所需用到的接口,例如通过第三方系统接口查询天气预报。

步骤s42,所述协调者将所述try操作的执行结果置为失败。

需要说明的是,当第三方系统接口是非敏感性接口,则接口在数据处理时的功能不涉及用户资产的交易或隐私机密,可以在第三方系统接口的数据处理结果是失败时,直接将try操作的结果置为失败。进一步地,可以在非敏感性接口数据处理失败后,由协调者将执行结果反馈给执行者,并由执行者再次发起该执行失败的分布式事务。

步骤s43,所述协调者将所述try操作的执行结果置为未知,并通过query接口对所述第三方系统接口进行反查,以确定所述第三方系统接口被调用时的数据处理结果是否属实。

当第三方系统接口是敏感性接口,则表示第三方系统接口的功能涉及用户资产的交易或者隐私机密,由于这类接口比较重要,因此可以考虑先将try操作的结果置为未知,并进一步通过query接口进行反查。本方案通过对不同接口进行区分,防止大量占用query接口任务资源,保证用户资产安全以及隐私,也加快了非敏感性接口的数据处理反馈速度。

进一步地,在其他实施例中,协调者在获取第三方系统接口被调用时的数据处理结果时,可能第三方系统接口仍在进行所述任务请求对应的数据处理,即既不是数据处理失败又不是数据处理成功,所述第三方系统接口可以反馈任务请求对应的数据正在处理中,或者也可以直接不反馈任务请求对应的数据处理状态。可选地,还可以通过协调者将数据处理结果置为未知,然后每间隔预设时间,例如5分钟,重复执行query接口的反查操作,直至能确认try操作的结果达到成功或失败的终态为止。

可选地,还可以设置次数阈值和/或时间阈值。以次数阈值为例,当重复执行query接口的次数超过5次,则将数据处理结果置为失败。以时间阈值为例,如果重复执行的总时间超过了1个小时,则将数据处理结果置为失败。本方案在第三方系统接口反馈状态为仍在进行任务请求对应的数据处理时,重复进行query反查操作,能帮助提高分布式事务系统的处理效率,加速数据处理结果的返回,有利于实现协调者的自治。

需要说明的是,不仅对于query接口的反查设定有时间限制,而且还可以对得出数据处理结果终态的时间进行限定。可以是协调者执行try操作的同时进行try操作计时,以实时统计try操作的执行时长。如果在执行时长达到了设定的预设阈值,而此时协调者仍然无法确定所述数据处理结果是属实或不属实时,通过执行者接收协调者发送的触发指令,使执行者触发活动管理器调用协调者的cancel接口执行cancel操作。可选地,还可以在执行时长达到预设阈值时,将try操作的结果修改为失败。通过为try操作和query操作限定时间,提高了分布式事务的处理效率,有利于实现协调者的自治。

此外,还可以在try操作执行失败时,重新发起新的分布式事务,该新的分布式事务可以是之前try操作执行失败的任务,直至该任务执行成功为止。进一步地,还可以限制重新发起该try操作执行失败的任务的次数,当次数超过设定阈值时,便不再进行重试,同时还可以发出预警邮件,在本方案中,重试次数的限制帮助减轻了服务器压力。

进一步地,参阅图5,在发明所提供的分布式事务处理方法的第三实施例中,所述步骤s70之后还包括:

步骤s80,所述协调者执行回调callback操作,以将所述confirm操作或所述cancel操作的执行结果返回给所述执行者。

回调callback操作是利用回调函数将分布式事务最终confirm操作或cancel操作的执行结果反馈给任务请求的发起者,即执行者,使执行者能够明确任务执行成功还是失败,形成了闭环事务处理模式。

可选地,在执行者执行完confirm操作或cancel操作后,可以更新业务流水表和/或账单表,使得运营人员可以参照业务流水表和/或账单表,核对数据记录是否准确,保证服务的幂等性,不会重复执行任务操作。

可选地,请继续参看图5,可以在步骤s80的同时执行步骤s90;

步骤s90,所述协调者根据所述执行结果执行所述分布式事务嵌套的子事务;

其中,所述步骤s90包括:

当所述执行结果为成功时,所述协调者对所述子事务执行confirm操作;

以及,当所述执行结果为失败时,所述协调者对所述子事务执行cancel操作。

可以在callback操作的同时发起新的分布式事务,该新的分布式事务是同一个分布式事务嵌套的子事务,该嵌套的子事务会沿用外围的事务,是一个外部事务的组成部分之一,当外围事务try操作成功或者query操作反查使得try操作的执行结果被修正为成功时,活动管理器可以调用confirm接口对新的分布式事务执行confirm操作,否则对新的分布式事务执行cancel操作。即如果外部事务回滚,则嵌套事务也会回滚;外部事务提交的时候,它才会被提交。当嵌套事务发生异常,则会恢复到嵌套事务的执行前的状态,相当于嵌套事务未执行。通过进行事务嵌套,可以帮助快速执行多个事务。

请一并参看图1和图6,本发明还提出一种分布式系统,所述分布式系统包括协调者,执行者以及活动管理器,所述协调者包括:

获取模块10,用于获取所述执行者发起的任务请求;

执行模块20,用于根据所述任务请求,执行尝试try操作,其中,所述执行模块20执行try操作的步骤包括调用第三方系统接口进行数据处理;

所述获取模块10,还用于获取所述第三方系统接口被调用时的数据处理结果;

处理模块30,用于当所述数据处理结果为失败时,将所述try操作的执行结果置为未知;

反查模块40,用于通过询问query接口对所述第三方系统接口进行反查,以确定所述第三方系统接口被调用时的数据处理结果是否属实;

修改模块50,用于当通过所述query接口确定所述数据处理结果属实时,将所述try操作的执行结果修改为失败;当通过所述query接口确定所述数据处理结果不属实时,将所述try操作的执行结果修改为成功;

反馈模块60,用于在所述执行结果为成功或失败时,将所述try操作的执行结果反馈给所述执行者,以使所述执行者根据所述try操作的执行结果触发所述活动管理器调用对应的接口进行事务操作。

可选地,在另一实施例中,所述处理模块30包括:

判断单元31,用于当所述数据处理结果为失败时,判断所述第三方系统接口是否为敏感性接口;

处理单元32,用于当所述第三方系统接口为敏感性接口时,将所述try操作的执行结果置为未知;

所述处理单元32,还用于当所述第三方系统接口为非敏感性接口时,将所述try操作的执行结果置为失败。

可选地,在又一实施例中,所述反查模块40包括:

反查单元41,用于通过所述query接口对所述第三方系统接口进行反查;

返回执行单元42,用于当所述query接口反馈所述第三方系统接口仍在进行所述任务请求对应的数据处理时,每间隔预设时间重新执行所述通过所述query接口对所述第三方系统接口进行反查的步骤,直至确定所述数据处理结果属实或不属实为止。

可选地,在又一实施例中,所述协调者还包括:

统计模块70,用于在执行try操作的同时统计所述try操作的执行时长;

控制模块80,用于当所述执行时长达到预设阈值,且所述协调者仍未确定所述数据处理结果是否属实时,发送触发指令给所述执行者,以使所述执行者触发所述活动管理器调用所述协调者的取消cancel接口执行cancel操作。

可选地,在又一实施例中,所述反馈模块60包括:

第一反馈单元61,用于当所述执行结果为成功时,将所述try操作的执行结果反馈给所述执行者,以使所述执行者根据所述try操作的执行结果触发所述活动管理器调用所述协调者的批准confirm接口执行confirm操作;

第二反馈单元62,用于当所述执行结果为失败时,将所述try操作的执行结果反馈给所述执行者,以使所述执行者根据所述try操作的执行结果触发所述活动管理器调用所述协调者的取消cancel接口执行cancel操作。

可选地,在又一实施例中,所述协调者还包括:

回调模块90,用于执行回调callback操作,以将所述confirm操作或所述cancel操作的执行结果返回给所述执行者。

可选地,在又一实施例中,所述执行模块20还用于根据所述执行结果执行所述分布式事务嵌套的子事务;其中,所述执行模块20根据所述执行结果执行所述分布式事务嵌套的子事务的步骤包括:

当所述执行结果为成功时,所述协调者对所述子事务执行confirm操作;

当所述执行结果为失败时,所述协调者对所述子事务执行cancel操作。

本发明还提出一种计算机可读存储介质,其上存储有计算机程序。所述计算机可读存储介质可以是终端100中的存储器20,也可以是如rom(read-onlymemory,只读存储器)/ram(randomaccessmemory,随机存取存储器)、磁碟、光盘中的至少一种,所述计算机可读存储介质包括若干指令用以使得一台具有处理器的终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。

需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者服务端不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者服务端所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者服务端中还存在另外的相同要素。

上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。

通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。

以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1