CN106156119A - 一种分布式事务通信方法、***及装置 - Google Patents
一种分布式事务通信方法、***及装置 Download PDFInfo
- Publication number
- CN106156119A CN106156119A CN201510161886.2A CN201510161886A CN106156119A CN 106156119 A CN106156119 A CN 106156119A CN 201510161886 A CN201510161886 A CN 201510161886A CN 106156119 A CN106156119 A CN 106156119A
- Authority
- CN
- China
- Prior art keywords
- transaction
- message
- branch
- transaction branch
- rollback
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Landscapes
- Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)
Abstract
本申请实施例公开了一种分布式事务通信方法、***及装置。该方法包括:客户端向事务管理器发送开启事务消息;客户端向第一资源管理器发送处理事务消息;第一资源管理器向事务管理器发送注册事务分支消息;第一资源管理器处理所述事务分支,并根据处理结果返回事务分支状态;第一资源管理器向事务管理器上报所述事务分支状态消息;客户端向事务管理器发送提交分布式事务或回滚分布式事务的消息;事务管理器向第一资源管理器发送提交事务分支或回滚事务分支的消息至收到第一资源管理器发送的成功提交事务分支或成功回滚事务分支的消息。
Description
技术领域
本申请涉及互联网通信技术领域,特别涉及一种分布式事务通信方法、***及装置。
背景技术
随着互联网通信技术的日新月异,一些大型的互联网***,由于业务复杂等原因,会出现大量分布式事务场景。分布式事务包括位于分布式***的不同节点之上的事务参与者、资源服务器、事务管理器等可以进行交互以实现一个共同的目标。
现有技术中,分布式***的不同节点进行交互以实现分布式事务主要采用的通信方法包括:XA两阶段提交协议。采用XA两阶段提交协议的分布式***中,存在一个节点作为协调者,其他节点作为参与者。XA两阶段提交协议的第一阶段是表决阶段:协调者节点向所有参与者节点询问是否可以成功执行当前事务分支的提交操作,并开始等待各参与者节点的响应;各参与者节点响应协调者节点发起的询问,将本事务分支是否可以成功提交的信息反馈发给协调者,但不真正执行事务。第二阶段是执行阶段:协调者节点根据所有参与者节点返回的响应消息,通知所有参与者节点,步调一致地在所有分支上提交或者回滚事务。参与者节点向协调者节点发送事务提交或回滚完成的消息;协调者节点收到所有参与者节点反馈的完成消息后,结束事务。具体的,当协调者节点从所有参与者节点获得的响应消息都为成功时,协调者节点向所有参与者节点发出"正式提交"的请求;如果任一参与者节点在第一阶段返回的响应消息为不成功,或者协调者节点在第一阶段的询问超时之前无法获取所有参与者节点的响应消息时,协调者节点向所有参与者节点发出"回滚操作"的请求。
在实现本申请过程中,发明人发现现有技术中至少存在如下问题:
现有技术中利用XA两阶段提交协议实现分布式事务时,真正执行事务的是第二阶段。且必须等所有的参与者节点都将本事务分支是否可以成功提交的信息反馈发给协调者之后,才能进入第二阶段,也即真正执行提交操作。因此,在第一阶段一旦有任一事务分支没有及时将本事务分支是否可以成功提交的信息反馈发给协调者,所有的参与者节点都需要等待,而进入阻塞状态。因此,XA两阶段协议的通信方法无法实现高性能的分布式事务通信。
发明内容
本申请实施例的目的是提供一种分布式事务通信方法、***及装置,以实现简单、高效、非阻塞的分布式事务通信。
为解决上述技术问题,本申请实施例提供一种分布式事务通信方法、***及装置是这样实现的:
一种分布式事务通信方法,包括:
客户端向事务管理器发送开启事务消息;
客户端向第一资源管理器发送处理事务消息;
第一资源管理器向事务管理器发送注册事务分支消息;
第一资源管理器处理所述事务分支,并根据处理结果返回事务分支状态;
第一资源管理器向事务管理器上报所述事务分支状态消息;
客户端向事务管理器发送提交分布式事务或回滚分布式事务的消息;
事务管理器向第一资源管理器发送提交事务分支或回滚事务分支的消息至收到第一资源管理器反馈的成功提交事务分支或成功回滚事务分支的消息。
一种分布式事务通信方法,包括:
接收客户端发送的处理事务消息;
向事务管理器发送注册事务分支消息;
处理所述事务分支,并根据处理结果返回事务分支状态;
向事务管理器上报所述事务分支状态消息;
接收事务管理器发送的提交事务分支或回滚事务分支的消息,并向事务管理器发送成功提交事务分支或成功回滚事务分支的消息。
一种分布式事务通信方法,包括:
向事务管理器发送开启事务消息;
向第一资源管理器发送处理事务消息;
获取事务分支状态;
根据所述事务分支状态确定提交分布式事务或回滚分布式事务;
向事务管理器发送提交分布式事务或回滚分布式事务的消息。
一种分布式事务通信方法,包括:
接收客户端发送的开启事务消息;
接收第一资源管理器发送的注册事务分支消息;
接收第一资源管理器发送的所述事务分支状态消息;
接收客户端发送的提交分布式事务或回滚分布式事务的消息;
向第一资源管理器发送提交事务分支或回滚事务分支的消息至收到第一资源管理器反馈的成功提交事务分支或成功回滚事务分支的消息。
一种分布式事务通信***,包括:
客户端,用于向事务管理器发送开启事务消息;向第一资源管理器发送执行事务消息;向事务管理器发送提交分布式事务或回滚分布式事务的消息;
第一资源管理器,用于向事务管理器发送注册事务分支消息;处理所述事务分支,并根据处理结果返回事务分支状态;向事务管理器上报所述事务分支状态。
事务管理器,用于向第一资源管理器发送提交事务分支或回滚事务分支的消息至收到第一资源管理器反馈的成功提交事务分支或成功回滚事务分支的消息。
一种分布式事务通信装置,包括:
处理事务消息接收单元,用于接收客户端发送的处理事务消息;
注册事务分支消息发送单元,用于向事务管理器发送注册事务分支消息;
事务分支状态返回单元,用于处理所述事务分支,并根据处理结果返回事务分支状态;
事务分支状态消息发送单元,用于向事务管理器发送所述事务分支状态消息;
第一事务处理单元,用于接收事务管理器发送的提交事务分支或回滚事务分支的消息,并向事务管理器发送成功提交事务分支或成功回滚事务分支的消息。
一种分布式事务通信装置,包括:
开启事务消息发送单元,用于向事务管理器发送开启事务消息;
处理事务消息发送单元,用于向第一资源管理器发送处理事务消息;
事务分支状态获取单元,用于获取事务分支状态;
第一确定单元,用于根据所述事务分支状态确定提交分布式事务或回滚分布式事务;
第二事务处理单元,用于向事务管理器发送提交分布式事务或回滚分布式事务的消息。
一种分布式事务通信装置,包括:
开启事务消息接收单元,用于接收客户端发送的开启事务消息;
接收注册事务分支单元,用于接收第一资源管理器发送的注册事务分支消息;
接收事务分支状态单元,用于接收第一资源管理器发送的所述事务分支状态消息;
第三事务处理单元,用于接收客户端发送的提交分布式事务或回滚分布式事务的消息;
第四事务处理单元,用于向第一资源管理器发送提交事务分支或回滚事务分支的消息至收到第一资源管理器反馈的成功提交事务分支或成功回滚事务分支的消息。
由以上本申请实施例提供的技术方案可见,本申请实施例提供的一种分布式事务通信方法、***及装置在一阶段事务开启后,资源管理器向事务管理器注册事务分支,并对事务分支进行了本地事务的处理,可以确保事务的状态。当有多个事务分支时,各个事务分支之间不用相互等。也即资源管理器无需等所有的事务分支都准备好之后,步调一致的进行上报事务分支状态。资源管理器处理完一个事务分支即可上报该事务分支的状态,且在上报完事务状态之后,就可以释放资源,有效解决了现有通信方法的阻塞问题。与现有技术相比,使通信过程简单、高效、非阻塞,且能满足各种复杂分布式事务应用业务场景。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请中记载的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是本申请一种分布式事务通信方法的一个实施例的流程图;
图2是本申请一种分布式事务通信方法的一种事务处理过程的流程图;
图3是本申请一种分布式事务通信方法的一种事务处理过程的流程图;
图4是本申请一种分布式事务通信方法的一种回滚事务分支的流程图;
图5是本申请一种分布式事务通信方法的一种提交事务分支的流程图;
图6是本申请一种分布式事务通信方法的一种回滚事务分支的流程图;
图7是本申请一种分布式事务通信方法的一个实施例的流程图;
图8是本申请一种分布式事务通信方法的一个实施例的流程图;
图9是本申请一种分布式事务通信方法的一个实施例的流程图;
图10是本申请一种分布式事务通信***的一个实施例的流程图;
图11是本申请一种分布式事务通信装置的一个实施例的流程图;
图12是本申请一种分布式事务通信装置的一个实施例的流程图;
图13是本申请一种分布式事务通信装置的一个实施例的流程图。
具体实施方式
本申请实施例提供一种分布式事务通信方法、***及装置。
为了使本技术领域的人员更好地理解本申请中的技术方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本申请保护的范围。
以下以几个具体的例子详细说明本申请实施例的具体实现。
本申请实施例中,一个分布式事务***可以包括一个或多个事务管理器(TransactionManager,TM)、一个或多个资源管理器(Resource Manager,RM)、客户端几个部分,还可以包括其他事务参与者。其中,事务管理器,也即事务的协调者,负责协调分布式事务;资源管理器负责资源的管理;资源可以包括数据库和消息中间件;客户端一般是事务发起者。
以下首先介绍本申请一种分布式事务通信方法的实施例。结合附图1,该实施例包括:
S100:客户端向事务管理器发送开启事务消息。
本申请实施例中,如果需要开启事务,可以利用客户端向事务管理器发送开启一个事务的消息。具体的,例如客户端通过JDBC执行update/insert/delete SQL语句。这里的JDBC(JavaData Base Connectivity,java数据库连接)是Java语言中用来规范客户端程序如何来访问数据库的应用程序接口,提供了诸如查询和更新数据库中数据的方法。进一步的,这里的SQL(Structured Query Language)是指结构化查询语言,是一种编程语言,用于数据库中的标准数据查询语言。
进一步的,事务管理器可以向客户端反馈事务开启成功的消息,所述消息可以包含全局事务ID,所述全局事务ID可以作为该事务通信过程的标识。
此外,一般在发送开启事务消息之前,客户端以及其对应的资源管理器可以先向事务管理器发送注册消息,进行客户端以及资源管理器的注册。
S200:客户端向第一资源管理器发送处理事务消息。
当客户端成功开始一个事务后,客户端可以进行本地事务,向第一资源管理器发送执行事务消息。
进一步的,这里所述第一资源管理器可以指客户端部署的资源管理器。且在一个分布式***中,一个客户端可以部署一个对应的资源管理器,也可以部署多个资源管理器。
进一步的,所述第一资源管理器可以是与客户端在一个进程中的资源管理器。
S300:第一资源管理器向事务管理器发送注册事务分支消息。
本申请实施例中,当客户端执行了一个事务的相关操作。客户端可以在本地事务开启后通过相应的第一资源管理器向事务管理器注册事务分支;相应的,事务管理器可以向第一资源管理器反馈事务分支注册成功的消息,所述消息中包含了事务分支ID,所述事务分支ID作为该事务分支通信过程的标识。
S200中客户端向第一资源管理器发送处理事务消息之后,所述第一资源管理器可以注册一个或多个事务分支,事务分支的个数可以根据具体事务确定。实际应用中,一般一个分布式事务至少两个事务分支,不然就失去分布式事务的意义了。
进一步的,这里客户端也可以通过向预设服务发送调用消息的方式调用预设服务执行事务操作,所述调用消息包括当前开启事务的全局事务ID。相应的,所述预设服务可以部署一个与所述预设服务在同一进程的资源管理器,也可以部署多个与所述预设服务在同一进程的资源管理器。且当客户端需要调用预设服务执行事务操作时,预设服务可以先调用第二资源管理器向事务管理器发送注册消息;相应的,事务管理器向第二资源管理器反馈第二资源管理器注册成功的消息之后,预设服务可以调用第二资源管理器向事务管理器发送注册事务分支消息,该事务分支可以作为全局事务的一条事务分支。
进一步的,这里的预设服务可以包括远程过程调用协议(Remote Procedure Call Protocol,RPC),但本申请实施例并不以此为限。
进一步的,这里的第二资源管理器是指与所述预设服务在一个进程中的资源管理器。
S400:第一资源管理器处理所述事务分支,并根据处理结果返回事务分支状态。
本申请实施例中,步骤S300之后,第一资源管理器成功注册事务分支之后,在第一种事务模式下,结合附图2,第一资源管理器处理所述事务分支,并根据处理结果返回事务分支状态具体包括:
S411:第一资源管理器判断所述事务分支是否可以执行。
S412:当所述判断为是时,执行所述事务分支,并记录所述事务分支执行前的状态和所述事务分支执行后的状态,返回成功事务分支状态。
S413:当所述判断为否时,返回失败事务分支状态。
进一步的,当所述判断为是时,第一资源管理器执行当前的本地事务。具体包括:
1、Save Undo指保存前镜像,即保存事务执行前的状态。
2、Exec SQL指真正执行事务。
3、Save Redo指保存保存后镜像,即保存事务执行后的状态。
4、Local Commit指提交事务。
返回成功事务分支状态。
当所述判断为否时,返回失败事务分支状态。
以“A帐号向B帐号汇钱”这个事务为例,在步骤S300中第一资源管理器需要向事务管理器注册两条事务分支。那么上述本地事务的执行过程,可以包括:
第一条事务分支的本地事务的执行过程包括:
Save Undo即将汇款前A账户的余额保存到日志中,形象的说可以是保存A帐号中的余额。
Exec SQL即对A帐号做减法操作。
Save Redo即把减法操作的结果保存到日志中,形象的说可以是把减法操作的结果保存A帐号中。
Local Commit即本地完成A帐号向B帐号汇钱。
第二条事务分支的本地事务的执行过程包括:
Save Undo即将汇款前B账户的余额保存到日志中,形象的说可以是读取B帐号中的余额。
Exec SQL即对B帐号做加法操作。
Save Redo即把加法操作的结果保存到日志中,形象的说可以是把加法操作的结果保存到B帐号中。
Local Commit即本地完成A帐号向B帐号汇钱。
进一步的,如果客户端调用了预设服务,第二资源管理器在接收到事务管理器反馈的事务分支注册成功的消息后,可以执行本地事务。
在第二种事务模式下,结合附图3,第一资源管理器处理所述事务分支,并根据处理结果返回事务分支状态具体包括:
S421:第一资源管理器判断所述事务分支是否可以执行。
S422:当所述判断为是时,预留所述事务分支的预设资源,并给所述事务分支设置预设标识,返回成功事务分支状态。
S423:当所述判断为否时,返回失败事务分支状态。
所述预设标识可以保证如果其他应用要操作当前事务时,发现这个预设标识则返回失败。因此,即使在处理本地事务时,并没有真正执行当前事务,也能保证后续真正执行时,可以完成事务。
以“用C账号购买10元的彩票,该彩票包括2个数字,每个数字为5元”为例,该事务包括两个事务分支。第一个事务分支为:购买第一个数字扣5元;第二个事务分支为:购买第二个数字扣5元,
第一个事务分支的处理过程具体包括:
第一事务管理器需要判断C账号中的余额是否大于等于5元。当所述判断为是时,资源管理器只需先进行资源预留的操作,也即预留当前在C账号中的5元,该5元可以作为预留资源。并给该当前事务设置预设标识,所述预设标识可以保证如果其他应用要操作该5元预留资源时,发现这个预设标识则返回失败。因此,即使在处理本地事务时,并没有真正执行给C账号扣5元,也能保证后续真正扣款时一定够用。
此外,本申请实施例所述处理所述事务分支,并根据所述处理结果返回事务分支状态不仅限于上述两种事务模式的处理方式,在实际中还可以是其他形式,本申请实施例并不以此为限。
S500:第一资源管理器向事务管理器上报所述事务分支状态消息。
本申请实施例中,当第一资源管理器执行完本地事务后,第一资源管理器可以向事务管理器上报当前事务分支的状态。当有多个事务分支时,第一资源管理器可以向事务管理器上报各个事务分支的状态。这样事务管理器可以获取到一个分布式事务有几个分支,及每个分支是否执行成功。相应的,事务管理器需要向第一资源管理器反馈事务分支状态上报成功的消息。
进一步的,所述上报事务分支状态消息中包含事务的全局ID和事务分支ID,所述全局ID和所述事务分支ID作为事务分支通信过程的标识。
进一步的,如果客户端调用了预设服务,在第二资源管理器执行完本地事务后,预设服务可以调用第二资源管理器向事务管理器上报事务分支状态消息。相应的,事务管理器可以向第二资源管理器反馈事务分支状态上报成功的消息。
S600:客户端向事务管理器发送提交分布式事务或回滚分布式事务的消息。
在本申请实施例中,在步骤S500之后,客户端可以向事务管理器发送提交分布式事务或回滚分布式事务的消息。具体的,客户端可以向事务管理器发送提交分布式事务的消息;客户端可以向事务管理器发送回滚分布式事务的消息。
进一步的,一个分布式事务最终只能是提交或回滚,在一个事务有多个事务分支的情况下,无论是提交还是回滚,各个分支必须一致,所有分支可以都提交或者都回滚。具体的,当所有事务分支状态都为成功时,客户端可以向事务管理器发送提交分布式事务的消息;相应的,事务管理器可以向客户端反馈接收到提交分布式事务的消息。当任意一个事务分支状态为失败时,客户端可以向事务管理器发送回滚分布式事务的消息,事务管理器可以向客户端反馈收到回滚分布式事务的消息。
进一步的,如果客户端向事务管理器发送提交分布式事务的消息,且至少有一个事务分支状态为失败时,事务管理器可以向客户端反馈事务分支失败,请回滚事务分支的消息至收到客户端发送的回滚分布式事务的消息。
在一个优选的实施例中,客户端可以根据事务分支状态向事务管理器发送提交分布式事务或回滚分布式事务的消息。具体的,在客户端向事务管理器发送提交分布式事务或回滚分布式事务的消息之前还可以包括:客户端可以从第一资源管理器获取当前所有事务分支的状态,客户端根据所述事务分支的状态确定提交分布式事务或回滚分布式事务。例如,当所有事务分支状态都为成功时,客户端可以确定提交分布式事务的消息;只要有任意一个事务分支状态为失败时,客户端可以确定回滚分布式事务的消息。这样根据事务状态确定提交分布式事务或回滚分布式事务可以有效防止在有一个事务分支状态为失败时,用户错误的发送了提交分布式事务的消息。
以上述“A帐号向B帐号汇钱”这个事务为例,如果第一个事务分支完成了本地事务,而第二个事务分支没有完成本地事务,那么就会出现A账号中扣了钱,但B账号并没有汇入钱的错误,所有只要有任意一个事务分支状态为失败,客户端就可以向事务管理器发送回滚分布式事务的消息。
进一步的,事务管理器需要向客户端反馈接收到提交或回滚分布式事务的消息。
上述步骤S100至S600可以作为一阶段,一阶段实现了本地事务的处理。以下介绍本申请实施例提供的通信方法的二阶段。
S700:事务管理器向第一资源管理器发送提交事务分支或回滚事务分支的消息至收到第一资源管理器反馈的成功提交事务分支或成功回滚事务分支的消息。
本申请实施例中,事务管理器根据客户端发送的分布式事务的提交或回滚消息,向相应的第一资源管理器发送事务分支的提交或回滚消息。也即当客户端向事务管理器发送提交分布式事务的消息时,事务管理器向相应的第一资源管理器发送事务分支的提交消息至收到第一资源管理器反馈的成功提交事务分支的消息;当客户端向事务管理器发送回滚分布式事务的消息时,事务管理器向相应的第一资源管理器发送事务分支的回滚消息至收到第一资源管理器反馈的成功回滚事务分支的消息。
进一步的,如果客户端调用了预设服务,事务管理器需要向第二资源管理器发送事务分支的提交或回滚消息至收到第一资源管理器反馈的至收到第一资源管理器反馈的成功提交事务分支或成功回滚事务分支的消息。
进一步的,分布式事务最终是回滚的情况下,如果是多个事务分支的情况下,不需要回滚事务分支状态为失败的事务分支,只要回滚事务分支状态为成功的事务分支。
以步骤S400所述的第一种事务模式为例,提交事务分支具体包括:
由于第一中事务模式下,第一资源管理器已经执行了当前事务,当事务管理器向第一资源管理器发送提交事务分支的消息之后,第一资源管理器向事务管理器发送成功提交事务分支的消息,结束事务。
以步骤S400所述的第一种事务模式为例,结合附图4,回滚事务分支具体包括:
S711:事务管理器向第一资源管理器发送回滚事务分支的消息。
S712:第一资源管理器根据所述事务分支执行前的状态和所述事务分支执行后的状态回滚事务分支状态为成功的事务分支。
S713:第一资源管理器向事务管理器发送成功回滚事务分支的消息。
以“A帐号向B帐号汇钱”为例:假设第一条事务分支处理后的状态为成功,也即本地成功完成A帐号向B帐号汇钱;而第二条事务分支处理后的状态为失败,也即本地没有完成A帐号向B帐号汇钱。回滚事务分支具体包括:
回滚第一条事务分支:根据事务分支的注册信息以及相应的分支ID找到相应的日志,根据日志记录,获得汇款前A账号中的余额和汇款后A账号中的余额。根据汇款前A账号中的余额和汇款后A账号中的余额对汇款后的A账号余额进行相应处理,使A账号中的余额恢复为汇款前的余额,即完成了回滚。
由于第二条事务分支并没有完成A帐号向B帐号汇钱,也即B账号中的余额没有变,那就没有回滚的需要了。
进一步的,步骤S100中客户端向事务管理器发送的开启事务消息可以包括一个预设超时时间消息。设置所述预设超时时间是因为当客户端发生宕机等异常时,如果客户端上有未完成的事务,那么该事务一定会最终超时,也即当前事务分支状态为失败。为了避免资源被长时间占用,事务管理器可以根据所述预设超时时间判断当前事务是否超时。如果超时,事务管理器可以通知第一资源管理器进行事务的回滚。
以步骤S400所述的第二种事务模式为例,结合附图5,提交事务分支具体包括:
S721:事务管理器向第一资源管理器发送提交事务分支的消息。
S722:第一资源管理器利用所述预留的预设资源执行所述事务分支。
S723:第一资源管理器向事务管理器发送成功提交事务分支的消息。
以“用C账号购买10元的彩票,该彩票包括2个数字,每个数字为5元”为例,当事务管理器向第一资源管理器发送提交事务分支的消息之后,第一资源管理器:根据事务分支的ID找到相应的日志,根据日志记录,获得预留的预设资源。然后利用所述预留的预设资源“5元”执行所述事务分支,也即给C账户扣5元;然后,第一资源管理器向事务管理器发送成功提交事务分支的消息。
以步骤S400所述的第二种事务模式为例,结合附图6,回滚事务分支具体包括:
S731:事务管理器向第一资源管理器发送回滚事务分支的消息。
S732:第一资源管理器取消所述事务分支状态为成功的事务分支的预设标识。
S733:第一资源管理器向事务管理器发送成功回滚事务分支的消息。
以“用C账号购买10元的彩票,该彩票包括2个数字,每个数字为5元”为例,假设第一事务分支的状态为成功,第一事务分支的状态为失败。当事务管理器向第一资源管理器发送回滚事务分支的消息之后,也即无需再对C账号进行扣款,那么可以释放对预留资源的锁定,第一资源管理器可以根据注册信息和相应的ID取消第一事务分支的预设标识,使其他应用可以对预留资源进行操作。由于第一事务分支的状态为失败,也即第一资源管理器并没有处理第一事务分支,故无需进行回滚处理。然后,第一资源管理器向事务管理器发送成功回滚事务分支的消息,结束事务。
进一步的,提交分布式事务只能是客户端发起,因为只有客户端才能决定是否所有分支都已经执行完成。回滚分布式事务可以是客户端发起,也可以是事务管理器发起,因为当客户端宕机或者长时间没完成事务提交,且事务处理时间超过预设超时时间,事务管理器可以主动通知相应的资源管理器对分支进行回滚,以避免资源被长时间占用。
进一步的,由于客户端可以部署多个资源管理器,假设资源管理器所在机器宕机,事务管理器会根据资源管理器的注册信息,找到可替代它的另一个资源管理器完成事务分支提交或回滚,不会影响到全局事务。
进一步的,由于一个分布式事务***可以包括多个事务管理器,假设事务管理器宕机,同组的其他事务管理器可以代替它完成新的事务。
进一步的,当第一资源管理器完成提交事务分支或回滚事务分支后,第一资源管理器需要向事务管理器上报成功提交事务分支或成功回滚事务分支的消息,结束事务。
进一步的,如果事务管理器在向第一资源管理器发送完提交事务分支或回滚事务分支的消息之后,在预设时间内没有收到第一资源管理器反馈的成功提交事务分支或成功回滚事务分支的消息,事务管理器会继续向第一资源管理器发送完提交事务分支或回滚事务分支的消息至收到第一资源管理器反馈的成功提交事务分支或成功回滚事务分支的消息。
由此可见,本申请实施例的技术方案在一阶段事务开启后,资源管理器向事务管理器注册事务分支,并对事务分支进行了本地事务的处理,可以确保事务的状态。当有多个事务分支时,各个事务分支之间不用相互等。也即资源管理器无需等所有的事务分支都准备好之后,步调一致的进行上报事务分支状态。资源管理器处理完一个事务分支即可上报该事务分支的状态,且在上报完事务状态之后,就可以释放资源,有效解决了现有通信方法的阻塞问题。且通过调用预设服务,使预设服务部署的资源管理器可以参与分布式事务,应用场景更加广泛。与现有技术相比,使通信过程简单、高效、非阻塞,且能满足各种复杂分布式事务应用业务场景。
考虑第一资源管理器为主的步骤,结合附图7,本申请一种分布式事务通信方法的实施例,具体包括:
S810:接收客户端发送的处理事务消息。
S820:向事务管理器发送注册事务分支消息。
S830:处理所述事务分支,并根据处理结果返回事务分支状态。
S840:向事务管理器上报所述事务分支状态消息。
S850:接收事务管理器发送的提交事务分支或回滚事务分支的消息,并向事务管理器发送成功提交事务分支或成功回滚事务分支的消息。
由此可见,本申请实施例的技术方案中资源管理器向事务管理器注册事务分支,并对事务分支进行了本地事务的处理,可以确保事务的状态。当有多个事务分支时,各个事务分支之间不用相互等。也即资源管理器无需等所有的事务分支都准备好之后,步调一致的进行上报事务分支状态。资源管理器处理完一个事务分支即可上报该事务分支的状态,且在上报完事务状态之后,就可以释放资源,有效解决了现有通信方法的阻塞问题。与现有技术相比,使通信过程简单、高效、非阻塞,且能满足各种复杂分布式事务应用业务场景。
考虑客户端为主的步骤,结合附图8,本申请一种分布式事务通信方法的实施例,具体包括:
S910:向事务管理器发送开启事务消息。
S920:向第一资源管理器发送处理事务消息。
S930:获取事务分支状态。
这里的事务分支状态包括事务分支是否成功处理的结果。
S940:根据所述事务分支状态确定提交分布式事务或回滚分布式事务。
S950:向事务管理器发送提交分布式事务或回滚分布式事务的消息。
由此可见,本申请实施例的技术方案在向第一资源管理器发送处理事务消息之后,资源管理器向事务管理器注册事务分支,并对事务分支进行了本地事务的处理,这样客户端可以获取准确的事务分支状态。并根据事务分支状态可以有效的确定提交分布式事务还是回滚分布式事务。与现有技术相比,使通信过程简单、高效,且能满足各种复杂分布式事务应用业务场景。
考虑事务管理器为主的步骤,结合附图9,本申请一种分布式事务通信方法的实施例,具体包括:
S1100:接收客户端发送的开启事务消息。
S1200:接收第一资源管理器发送的注册事务分支消息。
S1300:接收第一资源管理器发送的所述事务分支状态消息。
S1400:接收客户端发送的提交分布式事务或回滚分布式事务的消息。
S1500:向第一资源管理器发送提交事务分支或回滚事务分支的消息至收到第一资源管理器反馈的成功提交事务分支或成功回滚事务分支的消息。
由此可见,本申请实施例的技术方案中事务管理器在接收到客户端发送的提交分布式事务或回滚分布式事务的消息之后,可以向第一资源管理器发送提交事务分支或回滚事务分支的消息至收到第一资源管理器反馈的成功提交事务分支或成功回滚事务分支的消息。只要第一资源管理器没有反馈的成功提交事务分支或成功回滚事务分支的消息,事务管理器会一直想第一资源管理器发送提交事务分支或成功回滚事务分支的消息,这样就有效保证了最终事务一定会提交或回滚。与现有技术相比,使通信过程简单、高效,且能满足各种复杂分布式事务应用业务场景。
本申请一种分布式事务通信***的实施例。结合附图10,该***1000包括:
客户端1001用于向事务管理器发送开启事务消息;向第一资源管理器发送执行事务消息;向事务管理器发送提交分布式事务或回滚分布式事务的消息。
第一资源管理器1002用于向事务管理器发送注册事务分支消息;处理所述事务分支,并根据处理结果返回事务分支状态;向事务管理器上报所述事务分支状态。
事务管理器1003用于向第一资源管理器发送提交事务分支或回滚事务分支的消息至收到第一资源管理器反馈的成功提交事务分支或成功回滚事务分支的消息。
在一个优选的实施例中,所述客户端1001还用于:
获取事务分支状态;
根据所述事务分支状态确定提交分布式事务或回滚分布式事务。
在一个优选的实施例中,当客户端向预设服务发送调用消息时,该***1000还包括:
第二资源管理器,用于向事务管理器发送注册消息;向事务管理器发送注册事务分支的消息;处理所述事务分支,并返回事务分支状态;向事务管理器上报所述事务分支状态消息。
本申请一种分布式事务通信装置的实施例。结合附图11,该装置包括:
处理事务消息接收单元1110,用于接收客户端发送的处理事务消息。
注册事务分支消息发送单元1120,用于向事务管理器发送注册事务分支消息。
事务分支状态返回单元1130,用于处理所述事务分支,并根据处理结果返回事务分支状态。
事务分支状态消息发送单元1140,用于向事务管理器发送所述事务分支状态消息。
第一事务处理单元1150,用于接收事务管理器发送的提交事务分支或回滚事务分支的消息,并向事务管理器发送成功提交事务分支或成功回滚事务分支的消息。
本申请一种分布式事务通信装置的实施例。结合附图12,该装置包括:
开启事务消息发送单元1210,用于向事务管理器发送开启事务消息。
处理事务消息发送单元1220,用于向第一资源管理器发送处理事务消息。
事务分支状态获取单元1230,用于获取事务分支状态。
第一确定单元1240,用于根据所述事务分支状态确定提交分布式事务或回滚分布式事务。
第二事务处理单元1250,用于向事务管理器发送提交分布式事务或回滚分布式事务的消息。
本申请一种分布式事务通信装置的实施例。结合附图13,该装置包括:
开启事务消息接收单元1310,用于接收客户端发送的开启事务消息。
接收注册事务分支单元1320,用于接收第一资源管理器发送的注册事务分支消息。
接收事务分支状态单元1330,用于接收第一资源管理器发送的所述事务分支状态消息。
第三事务处理单元1340,用于接收客户端发送的提交分布式事务或回滚分布式事务的消息。
第四事务处理单元1350,用于向第一资源管理器发送提交事务分支或回滚事务分支的消息至收到第一资源管理器反馈的成功提交事务分支或成功回滚事务分支的消息。
由此可见,本申请实施例的技术方案提供的一种分布式事务通信方法、***及装置在一阶段事务开启后,资源管理器向事务管理器注册事务分支,并对事务分支进行了本地事务的处理,可以确保事务的状态。当有多个事务分支时,各个事务分支之间不用相互等。也即资源管理器无需等所有的事务分支都准备好之后,步调一致的进行上报事务分支状态。资源管理器处理完一个事务分支即可上报该事务分支的状态,且在上报完事务状态之后,就可以释放资源,有效解决了现有通信方法的阻塞问题。且通过调用预设服务,使预设服务部署的资源管理器可以参与分布式事务,应用场景更加广泛。与现有技术相比,使通信过程简单、高效、非阻塞,且能满足各种复杂分布式事务应用业务场景。
在20世纪90年代,对于一个技术的改进可以很明显地区分是硬件上的改进(例如,对二极管、晶体管、开关等电路结构的改进)还是软件上的改进(对于方法流程的改进)。然而,随着技术的发展,当今的很多方法流程的改进已经可以视为硬件电路结构的直接改进。设计人员几乎都通过将改进的方法流程编程到硬件电路中来得到相应的硬件电路结构。因此,不能说一个方法流程的改进就不能用硬件实体模块来实现。例如,可编程逻辑器件(Programmable Logic Device,PLD)(例如现场可编程门阵列(Field Programmable GateArray,FPGA))就是这样一种集成电路,其逻辑功能由用户对器件编程来确定。由设计人员自行编程来把一个数字***“集成”在一片PLD上,而不需要请芯片制造厂商来设计和制作专用的集成电路芯片2。而且,如今,取代手工地制作集成电路芯片,这种编程也多半改用“逻辑编译器(logic compiler)”软件来实现,它与程序开发撰写时所用的软件编译器相类似,而要编译之前的原始代码也得用特定的编程语言来撰写,此称之为硬件描述语言(Hardware Description Language,HDL),而HDL也并非仅有一种,而是有许多种,如ABEL(Advanced Boolean Expression Language)、AHDL(Altera Hardware Description Language)、Confluence、CUPL(Cornell University Programming Language)、HDCal、JHDL(Java HardwareDescription Language)、Lava、Lola、MyHDL、PALASM、RHDL(Ruby Hardware DescriptionLanguage)等,目前最普遍使用的是VHDL(Very-High-Speed Integrated Circuit HardwareDescription Language)与Verilog2。本领域技术人员也应该清楚,只需要将方法流程用上述几种硬件描述语言稍作逻辑编程并编程到集成电路中,就可以很容易得到实现该逻辑方法流程的硬件电路。
控制器可以按任何适当的方式实现,例如,控制器可以采取例如微处理器或处理器以及存储可由该(微)处理器执行的计算机可读程序代码(例如软件或固件)的计算机可读介质、逻辑门、开关、专用集成电路(Application Specific Integrated Circuit,ASIC)、可编程逻辑控制器和嵌入微控制器的形式,控制器的例子包括但不限于以下微控制器:ARC 625D、AtmelAT91SAM、Microchip PIC18F26K20以及Silicone Labs C8051F320,存储器控制器还可以被实现为存储器的控制逻辑的一部分。
本领域技术人员也知道,除了以纯计算机可读程序代码方式实现控制器以外,完全可以通过将方法步骤进行逻辑编程来使得控制器以逻辑门、开关、专用集成电路、可编程逻辑控制器和嵌入微控制器等的形式来实现相同功能。因此这种控制器可以被认为是一种硬件部件,而对其内包括的用于实现各种功能的装置也可以视为硬件部件内的结构。或者甚至,可以将用于实现各种功能的装置视为既可以是实现方法的软件模块又可以是硬件部件内的结构。
上述实施例阐明的***、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。
为了描述的方便,描述以上装置时以功能分为各种单元分别描述。当然,在实施本申请时可以把各单元的功能在同一个或多个软件和/或硬件中实现。
通过以上的实施方式的描述可知,本领域的技术人员可以清楚地了解到本申请可借助软件加必需的通用硬件平台的方式来实现。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。该计算机软件产品可以包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例或者实施例的某些部分所述的方法。该计算机软件产品可以存储在内存中,内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括短暂电脑可读媒体(transitory media),如调制的数据信号和载波。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于***实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
本申请可用于众多通用或专用的计算机***环境或配置中。例如:个人计算机、服务器计算机、手持设备或便携式设备、平板型设备、多处理器***、基于微处理器的***、置顶盒、可编程的消费电子设备、网络PC、小型计算机、大型计算机、包括以上任何***或设备的分布式计算环境等等。
本申请可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。也可以在分布式计算环境中实践本申请,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。
虽然通过实施例描绘了本申请,本领域普通技术人员知道,本申请有许多变形和变化而不脱离本申请的精神,希望所附的权利要求包括这些变形和变化而不脱离本申请的精神。
Claims (32)
1.一种分布式事务通信方法,其特征在于,包括:
客户端向事务管理器发送开启事务消息;
客户端向第一资源管理器发送处理事务消息;
第一资源管理器向事务管理器发送注册事务分支消息;
第一资源管理器处理所述事务分支,并根据处理结果返回事务分支状态;
第一资源管理器向事务管理器上报所述事务分支状态消息;
客户端向事务管理器发送提交分布式事务或回滚分布式事务的消息;
事务管理器向第一资源管理器发送提交事务分支或回滚事务分支的消息至收到第一资源管理器反馈的成功提交事务分支或成功回滚事务分支的消息。
2.根据权利要求1所述的方法,其特征在于,在客户端向事务管理器发送提交分布式事务或回滚分布式事务的消息之前,该方法还包括:
客户端获取事务分支状态;
客户端根据所述事务分支状态确定提交分布式事务或回滚分布式事务。
3.根据权利要求2所述的方法,其特征在于,所述客户端根据所述事务分支状态确定提交分布式事务或回滚分布式事务包括:
当所述事务分支状态为成功时,客户端确定提交分布式事务的消息;
当所述事务分支状态为失败时,客户端确定回滚分布式事务的消息。
4.根据权利要求1所述的方法,其特征在于,在客户端向事务管理器发送提交分布式事务或回滚分布式事务的消息之前,该方法还包括:
客户端向预设服务发送调用消息;
第二资源管理器向事务管理器发送注册事务分支的消息;
第二资源管理器处理所述事务分支,并返回事务分支状态;
第二资源管理器向事务管理器上报所述事务分支状态消息。
5.根据权利要求1至4任一所述的方法,其特征在于,所述第一资源管理器处理所述事务分支,并根据处理结果返回事务分支状态包括:
判断所述事务分支是否可以执行;
当所述判断为是时,执行所述事务分支,并记录所述事务分支执行前的状态和所述事务分支执行后的状态,返回成功事务分支状态。
6.根据权利要求5所述的方法,其特征在于,所述第一资源管理器处理所述事务分支,并根据处理结果返回事务分支状态还包括:当所述判断为否时,返回失败事务分支状态。
7.根据权利要求6所述的方法,其特征在于,所述事务管理器向第一资源管理器发送提交事务分支或回滚事务分支的消息至收到第一资源管理器反馈的成功提交事务分支或成功回滚事务分支的消息包括:
所述事务管理器向第一资源管理器发送提交事务分支的消息至收到第一资源管理器反馈的成功提交事务分支的消息;
所述事务管理器向第一资源管理器发送回滚事务分支的消息至收到第一资源管理器反馈的成功回滚事务分支的消息。
8.根据权利要求7所述的方法,其特征在于,所述事务管理器向第一资源管理器发送提交事务分支的消息至收到第一资源管理器反馈的成功提交事务分支的消息包括:
事务管理器向第一资源管理器发送提交事务分支的消息;
第一资源管理器向事务管理器发送成功提交事务分支的消息。
9.根据权利要求7所述的方法,其特征在于,所述事务管理器向第一资源管理器发送回滚事务分支的消息至收到第一资源管理器反馈的成功回滚事务分支的消息包括:
事务管理器向第一资源管理器发送回滚事务分支的消息;
第一资源管理器根据所述事务分支执行前的状态和所述事务分支执行后的状态回滚事务分支状态为成功的事务分支;
第一资源管理器向事务管理器发送成功回滚事务分支的消息。
10.根据权利要求1至4任一所述的方法,其特征在于,所述第一资源管理器处理所述事务分支,并根据处理结果返回事务分支状态包括:
判断所述事务分支是否可以执行;
当所述判断为是时,预留所述事务分支的预设资源,并给所述事务分支设置预设标识,返回成功事务分支状态。
11.根据权利要求10所述的方法,其特征在于,所述第一资源管理器处理所述事务分支,并根据处理结果返回事务分支状态还包括:当所述判断为否时,返回失败事务分支状态。
12.根据权利要求11所述的方法,其特征在于,所述事务管理器向第一资源管理器发送提交事务分支或回滚事务分支的消息至收到第一资源管理器反馈的成功提交事务分支或成功回滚事务分支的消息包括:
所述事务管理器向第一资源管理器发送提交事务分支的消息至收到第一资源管理器反馈的成功提交事务分支的消息;
所述事务管理器向第一资源管理器发送回滚事务分支的消息至收到第一资源管理器反馈的成功回滚事务分支的消息。
13.根据权利要求12所述的方法,其特征在于,所述事务管理器向第一资源管理器发送提交事务分支的消息至收到第一资源管理器反馈的成功提交事务分支的消息包括:
事务管理器向第一资源管理器发送提交事务分支的消息;
第一资源管理器利用所述预留的预设资源执行所述事务分支;
第一资源管理器向事务管理器发送成功提交事务分支的消息。
14.根据权利要求12所述的方法,其特征在于,所述事务管理器向第一资源管理器发送回滚事务分支的消息至收到第一资源管理器反馈的成功回滚事务分支的消息包括:
事务管理器向第一资源管理器发送回滚事务分支的消息;
第一资源管理器取消所述事务分支状态为成功的事务分支的预设标识;
第一资源管理器向事务管理器发送成功回滚事务分支的消息。
15.一种分布式事务通信方法,其特征在于,包括:
接收客户端发送的处理事务消息;
向事务管理器发送注册事务分支消息;
处理所述事务分支,并根据处理结果返回事务分支状态;
向事务管理器上报所述事务分支状态消息;
接收事务管理器发送的提交事务分支或回滚事务分支的消息,并向事务管理器发送成功提交事务分支或成功回滚事务分支的消息。
16.根据权利要求15所述的方法,其特征在于,所述处理所述事务分支,并根据处理结果返回事务分支状态包括:
判断所述事务分支是否可以执行;
当所述判断为是时,执行所述事务分支,并记录所述事务分支执行前的状态和所述事务分支执行后的状态,返回成功事务分支状态。
17.根据权利要求16所述的方法,其特征在于,所述处理所述事务分支,并根据处理结果返回事务分支状态还包括:当所述判断为否时,返回失败事务分支状态。
18.根据权利要求17所述的方法,其特征在于,所述接收事务管理器发送的提交事务分支或回滚事务分支的消息,并向事务管理器发送成功提交事务分支或成功回滚事务分支的消息包括:
接收事务管理器发送的提交事务分支的消息,并向事务管理器发送成功提交事务分支的消息。
19.根据权利要求18所述的方法,其特征在于,所述接收事务管理器发送的提交事务分支或回滚事务分支的消息,并向事务管理器发送成功提交事务分支或成功回滚事务分支的消息还包括:
接收事务管理器发送的回滚事务分支的消息;
根据所述事务分支执行前的状态和所述事务分支执行后的状态回滚事务分支状态为成功的事务分支;
向事务管理器发送成功回滚事务分支的消息。
20.根据权利要求15所述的方法,其特征在于,所述处理所述事务分支,并根据处理结果返回事务分支状态包括:
判断所述事务分支是否可以执行;
当所述判断为是时,预留所述事务分支的预设资源,并给所述事务分支设置预设标识,返回成功事务分支状态。
21.根据权利要求20所述的方法,其特征在于,所述处理所述事务分支,并根据处理 结果返回事务分支状态还包括:当所述判断为否时,返回失败事务分支状态。
22.根据权利要求21所述的方法,其特征在于,所述接收事务管理器发送的提交事务分支或回滚事务分支的消息,并向事务管理器发送成功提交事务分支或成功回滚事务分支的消息包括:
接收事务管理器发送的提交事务分支的消息;
利用所述预留的预设资源执行所述事务分支;
向事务管理器发送成功提交事务分支的消息。
23.根据权利要求22所述的方法,其特征在于,所述接收事务管理器发送的提交事务分支或回滚事务分支的消息,并向事务管理器发送成功提交事务分支或成功回滚事务分支的消息还包括:
接收事务管理器发送的回滚事务分支的消息;
取消所述事务分支状态为成功的事务分支的预设标识;
向事务管理器发送成功回滚事务分支的消息。
24.一种分布式事务通信方法,其特征在于,包括:
向事务管理器发送开启事务消息;
向第一资源管理器发送处理事务消息;
获取事务分支状态;
根据所述事务分支状态确定提交分布式事务或回滚分布式事务;
向事务管理器发送提交分布式事务或回滚分布式事务的消息。
25.一种分布式事务通信方法,其特征在于,包括:
接收客户端发送的开启事务消息;
接收第一资源管理器发送的注册事务分支消息;
接收第一资源管理器发送的所述事务分支状态消息;
接收客户端发送的提交分布式事务或回滚分布式事务的消息;
向第一资源管理器发送提交事务分支或回滚事务分支的消息至收到第一资源管理器反馈的成功提交事务分支或成功回滚事务分支的消息。
26.根据权利要求24或25所述的方法,其特征在于,所述事务分支状态包括:事务分支是否成功处理的结果。
27.一种分布式事务通信***,其特征在于,包括:
客户端,用于向事务管理器发送开启事务消息;向第一资源管理器发送执行事务消息;向事务管理器发送提交分布式事务或回滚分布式事务的消息;
第一资源管理器,用于向事务管理器发送注册事务分支消息;处理所述事务分支,并根据处理结果返回事务分支状态;向事务管理器上报所述事务分支状态;
事务管理器,用于向第一资源管理器发送提交事务分支或回滚事务分支的消息至收到第一资源管理器反馈的成功提交事务分支或成功回滚事务分支的消息。
28.根据权利要求27所述的***,其特征在于,所述客户端还用于:
获取事务分支状态;
根据所述事务分支状态确定提交分布式事务或回滚分布式事务。
29.根据权利要求27所述的***,其特征在于,当客户端向预设服务发送调用消息时,该***还包括:
第二资源管理器,用于向事务管理器发送注册事务分支的消息;处理所述事务分支,并返回事务分支状态;向事务管理器上报所述事务分支状态消息。
30.一种分布式事务通信装置,其特征在于,包括:
处理事务消息接收单元,用于接收客户端发送的处理事务消息;
注册事务分支消息发送单元,用于向事务管理器发送注册事务分支消息;
事务分支状态返回单元,用于处理所述事务分支,并根据处理结果返回事务分支状态;
事务分支状态消息发送单元,用于向事务管理器发送所述事务分支状态消息;
第一事务处理单元,用于接收事务管理器发送的提交事务分支或回滚事务分支的消息,并向事务管理器发送成功提交事务分支或成功回滚事务分支的消息。
31.一种分布式事务通信装置,其特征在于,包括:
开启事务消息发送单元,用于向事务管理器发送开启事务消息;
处理事务消息发送单元,用于向第一资源管理器发送处理事务消息;
事务分支状态获取单元,用于获取事务分支状态;
第一确定单元,用于根据所述事务分支状态确定提交分布式事务或回滚分布式事务;
第二事务处理单元,用于向事务管理器发送提交分布式事务或回滚分布式事务的消息。
32.一种分布式事务通信装置,其特征在于,包括:
开启事务消息接收单元,用于接收客户端发送的开启事务消息;
接收注册事务分支单元,用于接收第一资源管理器发送的注册事务分支消息;
接收事务分支状态单元,用于接收第一资源管理器发送的所述事务分支状态消息;
第三事务处理单元,用于接收客户端发送的提交分布式事务或回滚分布式事务的消息;
第四事务处理单元,用于向第一资源管理器发送提交事务分支或回滚事务分支的消息至收到第一资源管理器反馈的成功提交事务分支或成功回滚事务分支的消息。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510161886.2A CN106156119A (zh) | 2015-04-07 | 2015-04-07 | 一种分布式事务通信方法、***及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510161886.2A CN106156119A (zh) | 2015-04-07 | 2015-04-07 | 一种分布式事务通信方法、***及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN106156119A true CN106156119A (zh) | 2016-11-23 |
Family
ID=57338626
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510161886.2A Pending CN106156119A (zh) | 2015-04-07 | 2015-04-07 | 一种分布式事务通信方法、***及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106156119A (zh) |
Cited By (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108009027A (zh) * | 2017-11-23 | 2018-05-08 | 北京百度网讯科技有限公司 | 队列消息一致性的实现方法、装置、设备及存储介质 |
CN108279986A (zh) * | 2017-12-29 | 2018-07-13 | 亿阳安全技术有限公司 | 一种分布式事务处理方法及装置 |
CN108415758A (zh) * | 2018-03-27 | 2018-08-17 | 深圳市买买提信息科技有限公司 | 分布式事务协调方法及装置 |
CN108563693A (zh) * | 2018-03-16 | 2018-09-21 | 阿里巴巴集团控股有限公司 | 一种事务的处理方法、装置及设备 |
CN108924184A (zh) * | 2018-05-31 | 2018-11-30 | 阿里巴巴集团控股有限公司 | 数据处理方法和服务器 |
CN109725987A (zh) * | 2018-12-15 | 2019-05-07 | 深圳壹账通智能科技有限公司 | 一种分布式事务一致性解决方法及相关设备 |
CN110019443A (zh) * | 2017-09-08 | 2019-07-16 | 阿里巴巴集团控股有限公司 | 非关系型数据库事务处理方法、装置及电子设备 |
CN110351140A (zh) * | 2019-07-12 | 2019-10-18 | 苏州浪潮智能科技有限公司 | 一种单点故障处理的方法、***、设备及计算机可读存储介质 |
CN110532068A (zh) * | 2019-07-18 | 2019-12-03 | 政采云有限公司 | 一种分布式事务的管理方法 |
CN110716793A (zh) * | 2019-10-10 | 2020-01-21 | 腾讯科技(深圳)有限公司 | 一种分布式事务的执行方法、装置、设备及存储介质 |
CN111225012A (zh) * | 2018-11-27 | 2020-06-02 | 阿里巴巴集团控股有限公司 | 事务处理方法、装置和设备 |
CN111259083A (zh) * | 2020-02-13 | 2020-06-09 | 神州数码融信软件有限公司 | 分布式事务处理方法及装置 |
CN111984665A (zh) * | 2020-09-10 | 2020-11-24 | 上海优扬新媒信息技术有限公司 | 一种分布式事务处理方法、装置及*** |
CN113138840A (zh) * | 2021-04-25 | 2021-07-20 | 中国工商银行股份有限公司 | 分布式事务的低侵入补偿方法及装置 |
CN113296896A (zh) * | 2020-06-09 | 2021-08-24 | 阿里巴巴集团控股有限公司 | 分布式事务处理方法、装置及设备 |
CN113872781A (zh) * | 2020-06-30 | 2021-12-31 | 阿里巴巴集团控股有限公司 | 事务处理方法、装置、设备和存储介质 |
CN117234670A (zh) * | 2023-08-21 | 2023-12-15 | 泽拓科技(深圳)有限责任公司 | 分布式事务处理方法方法、***、计算机设备及存储介质 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102073540A (zh) * | 2010-12-15 | 2011-05-25 | 北京新媒传信科技有限公司 | 分布式事务提交方法和装置 |
CN102306197A (zh) * | 2011-09-22 | 2012-01-04 | 用友软件股份有限公司 | 保证跨数据源操作结果一致性的装置和方法 |
CN103473318A (zh) * | 2013-09-12 | 2013-12-25 | 中国科学院软件研究所 | 一种面向内存数据网格的分布式事务保障方法 |
CN103514028A (zh) * | 2012-06-14 | 2014-01-15 | 北京新媒传信科技有限公司 | 一种处理分布式事务的方法和装置 |
CN103546440A (zh) * | 2012-07-16 | 2014-01-29 | 上海宝信软件股份有限公司 | 一种客户端发起事务的事务实现方法和*** |
CN103902560A (zh) * | 2012-12-25 | 2014-07-02 | ***通信集团福建有限公司 | 一种分布式事务处理方法及*** |
-
2015
- 2015-04-07 CN CN201510161886.2A patent/CN106156119A/zh active Pending
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102073540A (zh) * | 2010-12-15 | 2011-05-25 | 北京新媒传信科技有限公司 | 分布式事务提交方法和装置 |
CN102306197A (zh) * | 2011-09-22 | 2012-01-04 | 用友软件股份有限公司 | 保证跨数据源操作结果一致性的装置和方法 |
CN103514028A (zh) * | 2012-06-14 | 2014-01-15 | 北京新媒传信科技有限公司 | 一种处理分布式事务的方法和装置 |
CN103546440A (zh) * | 2012-07-16 | 2014-01-29 | 上海宝信软件股份有限公司 | 一种客户端发起事务的事务实现方法和*** |
CN103902560A (zh) * | 2012-12-25 | 2014-07-02 | ***通信集团福建有限公司 | 一种分布式事务处理方法及*** |
CN103473318A (zh) * | 2013-09-12 | 2013-12-25 | 中国科学院软件研究所 | 一种面向内存数据网格的分布式事务保障方法 |
Cited By (24)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11620277B2 (en) | 2017-09-08 | 2023-04-04 | Alibaba Group Holding Limited | Transaction processing at non-relational databases |
CN110019443A (zh) * | 2017-09-08 | 2019-07-16 | 阿里巴巴集团控股有限公司 | 非关系型数据库事务处理方法、装置及电子设备 |
CN110019443B (zh) * | 2017-09-08 | 2023-08-11 | 阿里巴巴集团控股有限公司 | 非关系型数据库事务处理方法、装置及电子设备 |
CN108009027A (zh) * | 2017-11-23 | 2018-05-08 | 北京百度网讯科技有限公司 | 队列消息一致性的实现方法、装置、设备及存储介质 |
CN108009027B (zh) * | 2017-11-23 | 2019-09-20 | 北京百度网讯科技有限公司 | 队列消息一致性的实现方法、装置、设备及存储介质 |
CN108279986B (zh) * | 2017-12-29 | 2023-10-03 | 亿阳安全技术有限公司 | 一种分布式事务处理方法及装置 |
CN108279986A (zh) * | 2017-12-29 | 2018-07-13 | 亿阳安全技术有限公司 | 一种分布式事务处理方法及装置 |
CN108563693A (zh) * | 2018-03-16 | 2018-09-21 | 阿里巴巴集团控股有限公司 | 一种事务的处理方法、装置及设备 |
CN108415758B (zh) * | 2018-03-27 | 2020-11-27 | 深圳市融壹买信息科技有限公司 | 分布式事务协调方法及装置 |
CN108415758A (zh) * | 2018-03-27 | 2018-08-17 | 深圳市买买提信息科技有限公司 | 分布式事务协调方法及装置 |
CN108924184A (zh) * | 2018-05-31 | 2018-11-30 | 阿里巴巴集团控股有限公司 | 数据处理方法和服务器 |
CN111225012A (zh) * | 2018-11-27 | 2020-06-02 | 阿里巴巴集团控股有限公司 | 事务处理方法、装置和设备 |
CN109725987A (zh) * | 2018-12-15 | 2019-05-07 | 深圳壹账通智能科技有限公司 | 一种分布式事务一致性解决方法及相关设备 |
CN110351140A (zh) * | 2019-07-12 | 2019-10-18 | 苏州浪潮智能科技有限公司 | 一种单点故障处理的方法、***、设备及计算机可读存储介质 |
CN110532068A (zh) * | 2019-07-18 | 2019-12-03 | 政采云有限公司 | 一种分布式事务的管理方法 |
CN110716793B (zh) * | 2019-10-10 | 2023-09-15 | 腾讯科技(深圳)有限公司 | 一种分布式事务的执行方法、装置、设备及存储介质 |
CN110716793A (zh) * | 2019-10-10 | 2020-01-21 | 腾讯科技(深圳)有限公司 | 一种分布式事务的执行方法、装置、设备及存储介质 |
CN111259083A (zh) * | 2020-02-13 | 2020-06-09 | 神州数码融信软件有限公司 | 分布式事务处理方法及装置 |
CN113296896A (zh) * | 2020-06-09 | 2021-08-24 | 阿里巴巴集团控股有限公司 | 分布式事务处理方法、装置及设备 |
CN113872781A (zh) * | 2020-06-30 | 2021-12-31 | 阿里巴巴集团控股有限公司 | 事务处理方法、装置、设备和存储介质 |
CN111984665B (zh) * | 2020-09-10 | 2023-07-25 | 度小满科技(北京)有限公司 | 一种分布式事务处理方法、装置及*** |
CN111984665A (zh) * | 2020-09-10 | 2020-11-24 | 上海优扬新媒信息技术有限公司 | 一种分布式事务处理方法、装置及*** |
CN113138840A (zh) * | 2021-04-25 | 2021-07-20 | 中国工商银行股份有限公司 | 分布式事务的低侵入补偿方法及装置 |
CN117234670A (zh) * | 2023-08-21 | 2023-12-15 | 泽拓科技(深圳)有限责任公司 | 分布式事务处理方法方法、***、计算机设备及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106156119A (zh) | 一种分布式事务通信方法、***及装置 | |
US11314754B2 (en) | Data processing method, apparatus, and device | |
US20200145228A1 (en) | Blockchain consensus method and device | |
US11275730B2 (en) | Automated data analysis using combined queries | |
CN108346028B (zh) | 一种业务审批处理方法、装置及*** | |
US11410166B2 (en) | Systems and methods for automated decentralized multilateral transaction processing | |
CN103782573B (zh) | 对客户端和应用掩盖服务器停运 | |
JP2019535065A (ja) | 分散イベント処理システムにおけるデータシリアライズ | |
CN107688500A (zh) | 一种分布式任务处理方法、装置、***及设备 | |
CN109146638A (zh) | 异常金融交易群体的识别方法及装置 | |
WO2020248602A1 (zh) | 基于区块链的关系绑定方法、装置及设备 | |
WO2021204041A1 (zh) | 数据处理 | |
WO2019143979A2 (en) | Method, apparatus, and electronic device for regulatory inspection | |
CN108647950A (zh) | 一种转账请求处理方法、装置及设备 | |
US11650830B2 (en) | Techniques for modifying a compute instance | |
CN111126948A (zh) | 用于审批流程的处理方法和装置 | |
US8463755B2 (en) | System and method for providing collaborative master data processes | |
US11847642B2 (en) | Secure communication of data during transactions across multiple transaction entities in database systems | |
US11949735B2 (en) | Centralized approach for managing cross-service data of cloud resources | |
CN109615379B (zh) | 一种拒付处理***生成方法及装置 | |
US11379191B2 (en) | Presentation oriented rules-based technical architecture display framework | |
CN110264213A (zh) | 一种信息的处理方法、装置及设备 | |
CN111522840B (zh) | 标签的配置方法、装置、设备及计算机可读存储介质 | |
EP1259891A2 (en) | Multi-environment scalable business system | |
US11880835B2 (en) | Prevention of duplicate transactions across multiple transaction entities in database systems |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20161123 |
|
RJ01 | Rejection of invention patent application after publication |