CN108762895A - 处理分布式事务的方法及装置 - Google Patents

处理分布式事务的方法及装置 Download PDF

Info

Publication number
CN108762895A
CN108762895A CN201810476097.1A CN201810476097A CN108762895A CN 108762895 A CN108762895 A CN 108762895A CN 201810476097 A CN201810476097 A CN 201810476097A CN 108762895 A CN108762895 A CN 108762895A
Authority
CN
China
Prior art keywords
business
processing
stage
multinomial
stage processing
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.)
Granted
Application number
CN201810476097.1A
Other languages
English (en)
Other versions
CN108762895B (zh
Inventor
张海涛
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Advanced New Technologies Co Ltd
Advantageous New Technologies Co Ltd
Original Assignee
Alibaba Group Holding Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Alibaba Group Holding Ltd filed Critical Alibaba Group Holding Ltd
Priority to CN201810476097.1A priority Critical patent/CN108762895B/zh
Publication of CN108762895A publication Critical patent/CN108762895A/zh
Application granted granted Critical
Publication of CN108762895B publication Critical patent/CN108762895B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/466Transaction processing

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)

Abstract

本说明书实施例提供一种处理分布式事务的方法和装置,上述方法包括,首先获取分布式事务的处理请求,该分布式事务包括多项业务,涉及多个服务方。然后根据处理请求,针对多个服务方分别执行多项业务的第一阶段处理,其中第一阶段处理为第二阶段处理的预处理,所述第二阶段处理为业务的提交或回滚。一旦确定多项业务中各项业务在第一阶段处理中各自的阶段处理结果,在开始执行第二阶段处理之前或与其同时,根据阶段处理结果,返回所述分布式事务的处理结果通知。如此,缩短处理时间和等待时间,提升用户体验。

Description

处理分布式事务的方法及装置
技术领域
本说明书实施例涉及数据处理技术领域,具体地,涉及一种处理分布式事 务的方法及装置。
背景技术
分布式事务是指,事务的参与者、支持事务的服务器、资源服务器以及事 务管理器分别位于不同的分布式系统的不同节点之上。更简单的说,就是一项 分布式事务由多个不同的业务操作组成,这些业务操作分布在不同的服务器 上,且属于不同的应用。传统关系型数据库的事务模型必须遵守ACID原则。 在单数据库模式下,ACID模型能有效保障数据的完整性,但是在大规模分布式 事务处理环境下,一项事务往往会跨越多个数据库,如何保证这多个数据库之 间的数据一致性,需要行之有效的策略。
为了解决分布式事务的数据一致性问题,业界提出了几种解决方案和框架 平台。2PC(2Phase Commit,两阶段提交)方案可以保证数据的强一致性。该 方案的核心原理是通过提交分阶段和记日志的方式,记录下事务提交所处的阶 段状态。在组件宕机重启后,可通过日志恢复事务提交的阶段状态,并在这个 状态节点重试。
在2PC的基础上,进一步提出了分布式事务框架xts,该框架用来保障分布 式环境下事务的最终一致性。在该框架下,外部服务分成两个处理阶段,第一 阶段为预处理阶段,第二阶段为提交或回滚阶段。所有服务一阶段处理成功 后,由框架体系来保证二阶段一定处理成功。根据该框架体系,事务处理过程 中,可能会有短暂不一致的情况,但通过恢复系统,可以让事务的数据达到最 终一致的目标。并且,该框架协议简单,可伸缩性强,适用于大规模的分布式 事务处理环境。
然而,在上述分布式事务框架xts中,由于要进行多阶段的处理,处理往往 耗时较长,用户体验不够理想。因此,希望能有改进的方案,可以进一步提升 处理速度,降低事务处理的耗时,从而改善用户体验。
发明内容
本说明书描述了一种方法和装置,在两阶段的分布式事务处理过程中,通 过提前返回事务处理结果通知,降低事务处理耗时,改善用户体验。
根据第一方面,提供一种处理分布式事务的方法,该方法包括:
获取分布式事务的处理请求,所述分布式事务包括多项业务,所述多项业 务涉及多个服务方;
根据所述处理请求,针对所述多个服务方分别执行所述多项业务的第一阶 段处理,所述第一阶段处理为第二阶段处理的预处理,所述第二阶段处理为业 务的提交或回滚;
一旦确定所述多项业务中各项业务在所述第一阶段处理中各自的阶段处理 结果,在开始执行所述第二阶段处理之前或与其同时,根据所述阶段处理结 果,返回所述分布式事务的处理结果通知。
在一个实施例中,上述阶段处理结果为,多项业务中每项业务的第一阶段 处理均处理成功;在这样的情况下,返回分布式事务处理成功的通知。
在一个实施例中,上述阶段处理结果为,多项业务中存在至少一项业务的 第一阶段处理不成功;在这样的情况下,返回分布式事务处理失败的通知。
根据一种实施方式,在返回处理结果通知之后,根据阶段处理结果,针对 所述多个服务方分别执行所述多项业务的第二阶段处理。
在一个实施例中,阶段处理结果为,所述多项业务中每项业务的第一阶段 处理均处理成功;在这样的情况下,第二阶段处理包括:令所述多个服务方中 各个服务方分别提交所述多项业务中的对应业务。
在一个实施例中,阶段处理结果为,所述多项业务中存在至少一项业务的 第一阶段处理不成功;在这样的情况下,第二阶段处理包括:令所述多个服务 方中各个服务方分别回滚所述多项业务中的对应业务。
根据一个实施例,上述多项业务包括第一业务,所述第一业务为余额支 取,所述第一业务的第一阶段处理包括余额冻结;所述第一业务的第二阶段处 理包括,第一业务的提交或回滚,其中所述第一业务的提交包括余额扣减,所 述第一业务的回滚包括冻结释放。
根据一个实施例,上述多项业务包括第二业务,所述第二业务为份额转 入,所述第二业务的第一阶段处理包括,转入份额记账;所述第二业务的第二 阶段处理包括,第二业务的提交或回滚,其中所述第二业务的提交包括份额增 加,所述第二业务的回滚包括记账清除。
根据第二方面,提供一种处理分布式事务的装置,包括:
请求获取单元,配置为获取分布式事务的处理请求,所述分布式事务包括 多项业务,所述多项业务涉及多个服务方;
第一处理单元,配置为根据所述处理请求,针对所述多个服务方分别执行 所述多项业务的第一阶段处理,所述第一阶段处理为第二阶段处理的预处理, 所述第二阶段处理为业务的提交或回滚;
通知返回单元,配置为一旦确定所述多项业务中各项业务在所述第一阶段 处理中各自的阶段处理结果,在开始执行所述第二阶段处理之前或与其同时, 根据所述阶段处理结果,返回所述分布式事务的处理结果通知。
根据第三方面,提供了一种计算机可读存储介质,其上存储有计算机程 序,当所述计算机程序在计算机中执行时,令计算机执行第一方面的方法。
根据第四方面,提供了一种计算设备,包括存储器和处理器,其特征在 于,所述存储器中存储有可执行代码,所述处理器执行所述可执行代码时,实 现第一方面的方法。
根据本说明书实施例披露的处理分布式事务的方法和装置,在两阶段的分 布式事务处理中,在执行第二阶段处理之前,即根据第一阶段处理的阶段处理 结果,返回分布式事务的处理结果通知,如此,减少处理耗时和用户等待时 间,提升用户体验。
附图说明
为了更清楚地说明本说明书披露的多个实施例的技术方案,下面将对实施 例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅 仅是本说明书披露的多个实施例,对于本领域普通技术人员来讲,在不付出创 造性劳动的前提下,还可以根据这些附图获得其它的附图。
图1为本说明书披露的一个实施例的实施场景示意图;
图2示出根据一个实施例的处理分布式事务的方法流程图;
图3示出根据一个实施例的处理分布式事务的装置的示意性框图。
具体实施方式
下面结合附图,对本说明书披露的多个实施例进行描述。
图1为本说明书披露的一个实施例的实施场景示意图。如图1所示,外部机 构通过安全网络向分布式处理系统100发出分布式事务处理请求。具体而言,分 布式事务处理请求例如是支付请求。支付请求实际上是请求将款项从一个服务 方转移到另一服务方,因此支付请求涉及至少两项业务,第一业务是从一个服 务方支取款项,第二业务是向另一服务方增加款项。图1中的外部机构是相对于 分布式处理系统100而言的,在支付请求的例子中,外部机构例如是支付宝业务 系统。比如,终端用户在请求通过支付宝进行支付时,支付宝业务系统接收到 终端用户的请求,通过安全网络将支付请求发送到分布式处理系统。安全网络 是分布式处理系统与外部机构进行通信所经由的网络。由于在许多情况下,分 布式事务常常是与金融业务相关的事务,例如前述的支付请求,因此对于通信 安全性有很高的要求。一般地,安全网络需要对来自外部机构的事务处理请求 进行加解密、验签等操作,在验证通过后,将处理请求转发给分布式处理系 统。在支付场景下,该分布式处理系统例如是网商银行处理系统。
分布式处理系统100用于对接收到的分布式事务处理请求进行处理。进一步 地,分布式处理系统可以划分为业务产品层,业务处理层和事务管理器。业务 产品层对应于各个产品,例如快捷支付业务,代扣业务,代收业务等,通过各 个产品获取到事务处理请求,并进行基本的验证操作。业务处理层是位于更加 底层的功能模块,可以对事务处理请求所涉及的各项业务进行预处理。在处理 资产相关的事务处理请求的情况下,上述业务处理层即为资产处理层,可以进 行资产冻结、转移、交换等操作。事务管理器用于对分布式事务的处理和执行 过程进行管理。
根据本说明书的一个实施例,在外部机构通过安全网络向分布式处理系统 发送事务处理请求,例如支付请求之后,在分布式处理系统中,首先由业务产 品层的对应产品获取该处理请求,例如快捷支付业务获取到快捷支付的支付请 求,并将该请求提交至业务处理层。业务处理层将支付请求解析为,从一个服 务方支取款项的第一业务,和向另一服务方增加款项的第二业务。然后,分别 对这两个服务方执行业务的第一阶段处理,即预处理。例如,第一业务的预处 理可以包括冻结要支取的款项额,第二业务的预处理可以包括,对要增加的款 项进行记账。为了保证分布式事务处理的数据一致性,仅在第一业务和第二业 务的预处理均处理成功的情况下,在第二阶段,才会提交所有业务,使其生 效。任一业务预处理不成功,都会导致在第二阶段,回滚所有业务。
由于第一阶段的处理结果已经可以决定第二阶段的处理方式和最终的处理 结果,因此,根据本说明书的实施例,一旦确定出第一阶段的处理结果,在执 行第二阶段的处理之前,即向外部机构返回处理结果通知。如此,缩减了外部 机构的等待时间,显著提升用户体验。下面描述上述构思方式的具体执行过 程。
图2示出根据一个实施例的处理分布式事务的方法流程图。该方法的执行主 体可以是任何具有计算、处理能力的系统、设备、装置、平台或服务器,例如 图1所示的分布式处理系统,更具体地,例如是对资产类分布式事务进行处理的 系统,比如网商银行服务器系统等。如图2所示,上述方法包括:步骤21,获取 分布式事务的处理请求,所述分布式事务包括多项业务,所述多项业务涉及多 个服务方;步骤22,根据所述处理请求,针对所述多个服务方分别执行所述多 项业务的第一阶段处理,所述第一阶段处理为第二阶段处理的预处理,所述第 二阶段处理为业务的提交或回滚;步骤23,一旦确定所述多项业务在第一阶段处理中的阶段处理结果,在开始执行所述第二阶段处理之前或与其同时,根据 所述阶段处理结果,返回所述分布式事务的处理结果通知。下面详细描述以上 各个步骤的执行方式。
在一个实施例中,首先,在步骤21,获取分布式事务的处理请求。一般而 言,分布式事务包括多项业务,多项业务可能涉及多个服务方。相应地,在一 个实施例中,处理请求中可以包括所涉及的各项业务的业务信息,和对应的服 务方信息。
在一个例子中,上述分布式事务的处理请求为支付请求,该支付请求至少 涉及从一个服务方支取款项的第一业务,和向另一服务方增加款项的第二业 务。更具体地,上述支付请求例如是,从余额宝中支付100元到某银行账户。此 时,该支付请求至少包括两项业务:从第一服务方,即余额宝,支取款项100 元,以及在第二服务方,即上述银行的某账户中增加款项100元。在另一具体例 子中,上述支付请求例如是合并支付,比如从余额中支付50元,从余利宝(一 种理财工具)中支付100元,将这150元共同支付到某银行账户。此时,该支付 请求至少包括三项业务:从第一服务方,即余额,支取款项50元,从第二服务 方,即余利宝,支取款项100元,以及在第三服务方,即上述银行的某账户中增 加款项150元。
在其他例子中,上述分布式事务的处理请求还可以是转账请求、结算请求 等等。下面主要结合典型的支付请求的例子进行描述。
在步骤21获取分布式事务的处理请求的基础上,在步骤22,根据所述处理 请求,针对多个服务方分别执行各项业务的第一阶段处理。具体地,可以首先 对处理请求进行解析和分析,从而确定出分布式事务所涉及的各项业务的业务 信息,以及对应的各个服务方的信息。业务信息例如可以包括业务类型(预授 权、支取、转入等)、金额等,服务方信息例如可以包括服务方名称,对应服 务器信息,账户信息等等。
在确定出上述业务信息和服务方信息的情况下,就可以针对各个服务方分 别执行各项业务的第一阶段处理。如前所述,第一阶段处理为第二阶段处理的 预处理,第二阶段处理为业务的提交或回滚。在分布式事务处理框架中,为了 保持数据一致性,仅在各项业务的第一阶段处理均成功的情况下,在第二阶段 才会提交各项业务;只要各项业务中有一项业务的第一阶段处理不成功,在第 二阶段就会回滚所有业务。
第一阶段处理中预处理的具体内容与各项业务的业务内容相关联。在一个 实施例中,分布式事务的处理请求为支付请求,其中涉及的业务包括支取款项 的业务,例如从余额宝支取100元。对于支取款项的业务,在第一阶段处理中, 首先进行账户验证。账户验证首先要对待支取款项的账户本身的信息进行验 证,例如验证余额宝账户的账户信息,以及账户有效性。在账户验证通过之 后,还要验证,该账户中的余额是否足以支付该笔款项,例如余额是否大于要 支取的100元。在账户验证中各项验证都通过之后,第一阶段处理还包括,冻结 该笔待支付的款项。如果冻结成功,那么,该支取款项的业务的第一阶段处理即处理成功。并且,一旦该笔款项冻结成功,则意味着,该笔款项在解冻之前 不能被进行其他操作,这可以保证后续在第二阶段处理中,该笔款项一定可以 得到扣减。
在一个实施例中,分布式事务还包括份额转入的业务,例如在某银行账户 中增加款项100元。对于份额转入的业务,在第一阶段处理中,首先也要进行账 户验证处理,例如验证该账户的账户信息是否合法,该账户是否有效等等。在 账户验证通过之后,第一阶段处理还包括,对转入份额进行清算记账。在账户 验证和清算记账都成功的情况下,该业务的第一阶段处理成功。
在分布式事务包括其他业务类型的情况下,相应的第一阶段处理可以包含 其他处理内容。可以理解的是,第二阶段处理对应于业务真正的提交生效,或 者失败回滚,第一阶段处理是第二阶段处理的预处理。就同一业务而言,第一 阶段处理的成功可以保证第二阶段处理成功。
如此,在步骤22,对各项业务执行第一阶段处理。相应地,可以确定出各 个业务的第一阶段处理结果,即阶段处理结果。于是,在步骤23,一旦确定各 项业务在第一阶段处理中的阶段处理结果,在开始执行第二阶段处理之前或与 其同时,根据所述阶段处理结果,返回分布式事务的处理结果通知。
更具体地,如果第一阶段处理的阶段处理结果为,多项业务中每项业务的 第一阶段处理均处理成功,那么就返回分布式事务处理成功的通知。如果阶段 处理结果为,多项业务中存在至少一项业务的第一阶段处理不成功,那么就返 回分布式事务处理失败的通知。
在一个实施例中,上述返回分布式事务的处理结果通知,是由分布式处理 系统将处理结果通知返回给外部机构,从而使得外部机构可以将该处理结果通 知返回给终端用户。更具体地,在图1所示的架构中,由业务处理层分别执行各 个业务的第一阶段处理,然后基于阶段处理结果,向业务产品层返回处理结果 通知。然后,业务产品层通过安全网络向外部结构返回上述处理结果通知,从 而使得外部机构可以将该处理结果通知返回给终端用户。
需要说明的是,根据本说明书的实施例,返回分布式事务的处理结果通知 的步骤,在开始执行第二阶段处理之前,或者与开始执行第二阶段处理同时, 进行执行。这与常规技术中执行完第二阶段处理之后才返回处理结果通知形成 鲜明对照。实际上,根据分布式事务框架的第一阶段处理和第二阶段处理的设 置,在确定出各个业务的第一阶段处理的阶段处理结果时,即可以据此确定第 二阶段的处理内容,即第二阶段是进行提交还是回滚,并且对于每个单项业务 来说,第一阶段处理的成功可以保证第二阶段处理成功,因此,基于这样的考 虑,在执行第二阶段处理之前就先返回整个事务的处理结果通知,并不会影响 处理结果通知的准确性。而从用户的角度来说,则可以缩短等待时间,显著提 升用户体验。
根据一个实施例,在返回处理结果通知之后,分布式处理系统继续执行各 个业务的第二阶段处理。更具体而言,在图1的架构体系中,由业务处理层返回 处理结果通知后,向事务管理器发出消息,由事务管理器来分配或执行第二阶 段处理。
具体而言,如果第一阶段处理的阶段处理结果为,多项业务中每项业务的 第一阶段处理均处理成功,那么在第二阶段处理中,令各项业务对应的各个服 务方分别提交多项业务中的对应业务;如果阶段处理结果为,多项业务中存在 至少一项业务的第一阶段处理不成功,那么第二阶段处理则包括,令多个服务 方中各个服务方分别回滚所述多项业务中的对应业务。
第二阶段处理中针对各项业务的提交或回滚的具体操作内容与业务内容相 关联,且与第一阶段处理相对应。在一个实施例中,分布式事务包括支取款项 的业务,例如从余额宝支取100元。对于支取款项的业务,如前所述,在第一阶 段处理中,会对要支取的款项进行冻结。在第二阶段处理中,根据全部业务的 阶段处理结果,确定是进行业务提交还是回滚。在进行业务提交的情况下,对 于上述支取款项的业务,在第二阶段处理中进行真正的余额扣减,从而完成业 务提交,使得支取款项的业务真正生效。在进行业务回滚的情况下,对于上述 支取款项的业务,在第二阶段处理中,对冻结的款项进行解冻或释放,从而实 现业务回滚。
在一个实施例中,分布式事务还包括份额转入的业务,例如在某银行账户 中增加款项100元。对于份额转入的业务,如前所述,在第一阶段处理中,对转 入份额进行清算记账。在第二阶段处理中,根据全部业务的阶段处理结果,确 定是进行业务提交还是回滚。在进行业务提交的情况下,对于上述份额转入的 业务,在第二阶段处理中进行真正的份额增加,从而完成业务提交,使得份额 转入的业务真正生效。在进行业务回滚的情况下,对于上述份额转入的业务, 在第二阶段处理,对转入的记账进行记账清除,从而实现业务回滚。
在分布式事务包括其他业务类型的情况下,相应的第二阶段处理的提交或 回滚可以包含其他操作。可以理解的是,第二阶段处理对应于业务真正的提交 生效,或者失败回滚。对于整个分布式事务而言,在第二阶段处理中,对于各 个业务,要么全部提交,要么全部回滚。如果第二阶段处理的操作是提交,那 么分别提交各个业务,使得整个分布式事务生效。例如,对于从余额宝支付100 元到某银行账户的分布式事务,涉及的业务包括从余额宝支取100元,以及向某 银行账户转入100元。这两项业务对应的第一阶段处理包括,冻结余额宝中100 元的余额,以及在银行账户中进行转入记账。如果两项业务的第一阶段处理均 成功,那么在第二阶段处理中,提交全部业务,也就是从余额宝中进行余额扣 减,同时在银行账户中进行款项增加,如此使得整个支付事务得到处理完成和 生效。如果两项业务中任一业务的第一阶段处理不成功,那么会导致第二阶段 处理中所有业务全部回滚,也就是将余额宝中冻结的款项释放,同时对银行账 户的转入记账进行清除。在这样的情况下,整个支付事务不成功。
典型地,第二阶段处理通常需要几百毫秒的时间,例如300-500ms。通过在 执行第二阶段处理之前就向用户返回事务处理结果通知,可以使得用户的等待 时间缩短上述的几百毫秒,显著提升用户体验。
根据另一方面的实施例,还提供一种处理分布式事务的装置。图3示出根据 一个实施例的处理分布式事务的装置的示意性框图。如图3所示,处理装置300 包括:请求获取单元310,配置为获取分布式事务的处理请求,所述分布式事务 包括多项业务,所述多项业务涉及多个服务方;第一处理单元320,配置为根据 所述处理请求,针对所述多个服务方分别执行所述多项业务的第一阶段处理, 所述第一阶段处理为第二阶段处理的预处理,所述第二阶段处理为业务的提交 或回滚;通知返回单元330,配置为一旦确定所述多项业务中各项业务在所述第 一阶段处理中各自的阶段处理结果,在开始执行所述第二阶段处理之前或与其 同时,根据所述阶段处理结果,返回所述分布式事务的处理结果通知。
根据一个实施例,上述第一阶段处理的阶段处理结果为,所述多项业务中 每项业务的第一阶段处理均处理成功。在这样的情况下,通知返回单元330返回 分布式事务处理成功的通知。
根据另一实施例,上述第一阶段处理的阶段处理结果为,所述多项业务中 存在至少一项业务的第一阶段处理不成功。在这样的情况下,通知返回单元330 返回分布式事务处理失败的通知。
在一个实施例中,处理装置300还包括第二处理单元340,配置为在返回处 理结果通知之后,根据所述阶段处理结果,针对所述多个服务方分别执行所述 多项业务的第二阶段处理。
根据一个实施例,上述第一阶段处理的阶段处理结果为,所述多项业务中 每项业务的第一阶段处理均处理成功。在这样的情况下,第二处理单元340配置 为,令所述多个服务方中各个服务方分别提交所述多项业务中的对应业务。
根据另一实施例,上述第一阶段处理的阶段处理结果为,所述多项业务中 存在至少一项业务的第一阶段处理不成功。在这样的情况下,第二处理单元340 配置为,令所述多个服务方中各个服务方分别回滚所述多项业务中的对应业 务。
在一个实施例中,上述多项业务包括第一业务,所述第一业务为余额支 取,所述第一业务的第一阶段处理包括余额冻结;所述第一业务的第二阶段处 理包括,第一业务的提交或回滚,其中所述第一业务的提交包括余额扣减,所 述第一业务的回滚包括冻结释放。
在另一实施例中,上述多项业务包括第二业务,所述第二业务为份额转 入,所述第二业务的第一阶段处理包括,转入份额记账;所述第二业务的第二 阶段处理包括,第二业务的提交或回滚,其中所述第二业务的提交包括份额增 加,所述第二业务的回滚包括记账清除。
通过以上描述的处理分布式事务的方法和装置,在两阶段的分布式事务处 理中,在执行第二阶段处理之前,即根据第一阶段处理的阶段处理结果,返回 分布式事务的处理结果通知,如此,减少处理耗时和用户等待时间,提升用户 体验。
如上,根据再一方面的实施例,还提供一种计算机可读存储介质,其上存 储有计算机程序,当所述计算机程序在计算机中执行时,令计算机执行结合图2 所描述的方法。
根据再一方面的实施例,还提供一种计算设备,包括存储器和处理器,所 述存储器中存储有可执行代码,所述处理器执行所述可执行代码时,实现结合 图2所描述的方法。
本领域技术人员应该可以意识到,在上述一个或多个示例中,本说明书披 露的多个实施例所描述的功能可以用硬件、软件、固件或它们的任意组合来实 现。当使用软件实现时,可以将这些功能存储在计算机可读介质中或者作为计 算机可读介质上的一个或多个指令或代码进行传输。
以上所述的具体实施方式,对本说明书披露的多个实施例的目的、技术方 案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本说明书 披露的多个实施例的具体实施方式而已,并不用于限定本说明书披露的多个实 施例的保护范围,凡在本说明书披露的多个实施例的技术方案的基础之上,所 做的任何修改、等同替换、改进等,均应包括在本说明书披露的多个实施例的 保护范围之内。

Claims (18)

1.一种处理分布式事务的方法,其特征在于,包括:
获取分布式事务的处理请求,所述分布式事务包括多项业务,所述多项业务涉及多个服务方;
根据所述处理请求,针对所述多个服务方分别执行所述多项业务的第一阶段处理,所述第一阶段处理为第二阶段处理的预处理,所述第二阶段处理为业务的提交或回滚;
一旦确定所述多项业务中各项业务在所述第一阶段处理中各自的阶段处理结果,在开始执行所述第二阶段处理之前或与其同时,根据所述阶段处理结果,返回所述分布式事务的处理结果通知。
2.根据权利要求1所述的方法,其中所述阶段处理结果为,所述多项业务中每项业务的第一阶段处理均处理成功;
所述返回所述分布式事务的处理结果通知包括,返回分布式事务处理成功的通知。
3.根据权利要求1所述的方法,其中所述阶段处理结果为,所述多项业务中存在至少一项业务的第一阶段处理不成功;
所述返回所述分布式事务的处理结果通知包括,返回分布式事务处理失败的通知。
4.根据权利要求1所述的方法,还包括,在返回处理结果通知之后,根据所述阶段处理结果,针对所述多个服务方分别执行所述多项业务的第二阶段处理。
5.根据权利要求4所述的方法,其中所述阶段处理结果为,所述多项业务中每项业务的第一阶段处理均处理成功;
所述针对所述多个服务方分别执行所述多项业务的第二阶段处理包括:
令所述多个服务方中各个服务方分别提交所述多项业务中的对应业务。
6.根据权利要求4所述的方法,其中所述阶段处理结果为,所述多项业务中存在至少一项业务的第一阶段处理不成功;
所述针对所述多个服务方分别执行所述多项业务的第二阶段处理包括:
令所述多个服务方中各个服务方分别回滚所述多项业务中的对应业务。
7.根据权利要求1所述的方法,其中所述多项业务包括第一业务,所述第一业务为余额支取,所述第一业务的第一阶段处理包括余额冻结;所述第一业务的第二阶段处理包括,第一业务的提交或回滚,其中所述第一业务的提交包括余额扣减,所述第一业务的回滚包括冻结释放。
8.根据权利要求1所述的方法,其中所述多项业务包括第二业务,所述第二业务为份额转入,所述第二业务的第一阶段处理包括,转入份额记账;所述第二业务的第二阶段处理包括,第二业务的提交或回滚,其中所述第二业务的提交包括份额增加,所述第二业务的回滚包括记账清除。
9.一种处理分布式事务的装置,其特征在于,包括:
请求获取单元,配置为获取分布式事务的处理请求,所述分布式事务包括多项业务,所述多项业务涉及多个服务方;
第一处理单元,配置为根据所述处理请求,针对所述多个服务方分别执行所述多项业务的第一阶段处理,所述第一阶段处理为第二阶段处理的预处理,所述第二阶段处理为业务的提交或回滚;
通知返回单元,配置为一旦确定所述多项业务中各项业务在所述第一阶段处理中各自的阶段处理结果,在开始执行所述第二阶段处理之前或与其同时,根据所述阶段处理结果,返回所述分布式事务的处理结果通知。
10.根据权利要求9所述的装置,其中所述阶段处理结果为,所述多项业务中每项业务的第一阶段处理均处理成功;
所述通知返回单元配置为,返回分布式事务处理成功的通知。
11.根据权利要求9所述的装置,其中所述阶段处理结果为,所述多项业务中存在至少一项业务的第一阶段处理不成功;
所述通知返回单元配置为,返回分布式事务处理失败的通知。
12.根据权利要求9所述的装置,还包括第二处理单元,配置为在返回处理结果通知之后,根据所述阶段处理结果,针对所述多个服务方分别执行所述多项业务的第二阶段处理。
13.根据权利要求12所述的装置,其中所述阶段处理结果为,所述多项业务中每项业务的第一阶段处理均处理成功;
所述第二处理单元配置为,令所述多个服务方中各个服务方分别提交所述多项业务中的对应业务。
14.根据权利要求12所述的装置,其中所述阶段处理结果为,所述多项业务中存在至少一项业务的第一阶段处理不成功;
所述第二处理单元配置为,令所述多个服务方中各个服务方分别回滚所述多项业务中的对应业务。
15.根据权利要求9所述的装置,其中所述多项业务包括第一业务,所述第一业务为余额支取,所述第一业务的第一阶段处理包括余额冻结;所述第一业务的第二阶段处理包括,第一业务的提交或回滚,其中所述第一业务的提交包括余额扣减,所述第一业务的回滚包括冻结释放。
16.根据权利要求9所述的装置,其中所述多项业务包括第二业务,所述第二业务为份额转入,所述第二业务的第一阶段处理包括,转入份额记账;所述第二业务的第二阶段处理包括,第二业务的提交或回滚,其中所述第二业务的提交包括份额增加,所述第二业务的回滚包括记账清除。
17.一种计算机可读存储介质,其上存储有计算机程序,当所述计算机程序在计算机中执行时,令计算机执行权利要求1-8中任一项的所述的方法。
18.一种计算设备,包括存储器和处理器,其特征在于,所述存储器中存储有可执行代码,所述处理器执行所述可执行代码时,实现权利要求1-8中任一项所述的方法。
CN201810476097.1A 2018-05-17 2018-05-17 处理分布式事务的方法及装置 Active CN108762895B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201810476097.1A CN108762895B (zh) 2018-05-17 2018-05-17 处理分布式事务的方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201810476097.1A CN108762895B (zh) 2018-05-17 2018-05-17 处理分布式事务的方法及装置

Publications (2)

Publication Number Publication Date
CN108762895A true CN108762895A (zh) 2018-11-06
CN108762895B CN108762895B (zh) 2021-11-19

Family

ID=64007056

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201810476097.1A Active CN108762895B (zh) 2018-05-17 2018-05-17 处理分布式事务的方法及装置

Country Status (1)

Country Link
CN (1) CN108762895B (zh)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110955670A (zh) * 2019-10-30 2020-04-03 成都摩宝网络科技有限公司 基于分布式事务的支付交易数据一致性控制方法及系统
CN111340474A (zh) * 2020-05-15 2020-06-26 支付宝(杭州)信息技术有限公司 基于分布式事务的资源处理方法、装置以及系统
CN113065967A (zh) * 2021-05-18 2021-07-02 中国农业银行股份有限公司 多模式的业务处理方法、装置及设备
CN115034902A (zh) * 2022-06-21 2022-09-09 支付宝(杭州)信息技术有限公司 记账处理方法及装置

Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5546582A (en) * 1992-08-20 1996-08-13 International Business Machines Corporation Extension of two phase commit protocol to distributed participants
CN1581142A (zh) * 2003-08-06 2005-02-16 松下电器产业株式会社 在客户机-服务器分布式系统中使用的方法、服务器和客户机
US20070250831A1 (en) * 2006-04-21 2007-10-25 Bea Systems, Inc. Two-phase deployment framework
CN101872511A (zh) * 2009-04-24 2010-10-27 王颖师 一种使用短信预授权加快手机银行短信支付速度的方法
CN103559245A (zh) * 2013-10-29 2014-02-05 华为技术有限公司 一种分布式事务提交故障的处理方法、装置和系统
US8655971B2 (en) * 2011-05-16 2014-02-18 Vmware, Inc. Breaking locks held by two-phase commit transactions while preserving data consistency
US9201919B2 (en) * 2013-05-07 2015-12-01 Red Hat, Inc. Bandwidth optimized two-phase commit protocol for distributed transactions
CN105988862A (zh) * 2015-02-04 2016-10-05 阿里巴巴集团控股有限公司 分布式事务处理方法及装置
CN106325978A (zh) * 2015-06-19 2017-01-11 阿里巴巴集团控股有限公司 分布式事务的处理方法及装置
CN106651367A (zh) * 2015-11-04 2017-05-10 阿里巴巴集团控股有限公司 基于分布式事务的账务处理方法及设备

Patent Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5546582A (en) * 1992-08-20 1996-08-13 International Business Machines Corporation Extension of two phase commit protocol to distributed participants
CN1581142A (zh) * 2003-08-06 2005-02-16 松下电器产业株式会社 在客户机-服务器分布式系统中使用的方法、服务器和客户机
US20070250831A1 (en) * 2006-04-21 2007-10-25 Bea Systems, Inc. Two-phase deployment framework
CN101872511A (zh) * 2009-04-24 2010-10-27 王颖师 一种使用短信预授权加快手机银行短信支付速度的方法
US8655971B2 (en) * 2011-05-16 2014-02-18 Vmware, Inc. Breaking locks held by two-phase commit transactions while preserving data consistency
US9201919B2 (en) * 2013-05-07 2015-12-01 Red Hat, Inc. Bandwidth optimized two-phase commit protocol for distributed transactions
CN103559245A (zh) * 2013-10-29 2014-02-05 华为技术有限公司 一种分布式事务提交故障的处理方法、装置和系统
CN105988862A (zh) * 2015-02-04 2016-10-05 阿里巴巴集团控股有限公司 分布式事务处理方法及装置
CN106325978A (zh) * 2015-06-19 2017-01-11 阿里巴巴集团控股有限公司 分布式事务的处理方法及装置
CN106651367A (zh) * 2015-11-04 2017-05-10 阿里巴巴集团控股有限公司 基于分布式事务的账务处理方法及设备

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110955670A (zh) * 2019-10-30 2020-04-03 成都摩宝网络科技有限公司 基于分布式事务的支付交易数据一致性控制方法及系统
CN111340474A (zh) * 2020-05-15 2020-06-26 支付宝(杭州)信息技术有限公司 基于分布式事务的资源处理方法、装置以及系统
CN113065967A (zh) * 2021-05-18 2021-07-02 中国农业银行股份有限公司 多模式的业务处理方法、装置及设备
CN115034902A (zh) * 2022-06-21 2022-09-09 支付宝(杭州)信息技术有限公司 记账处理方法及装置

Also Published As

Publication number Publication date
CN108762895B (zh) 2021-11-19

Similar Documents

Publication Publication Date Title
CN108762895A (zh) 处理分布式事务的方法及装置
US11138606B2 (en) Transfer costs and lock timeouts in a resource transfer system
CN110033377B (zh) 基于区块链的资产清分方法及装置、电子设备
CN110020936B (zh) 基于区块链的资产管理方法及装置、电子设备
CN110910230A (zh) 一种记账方法、记账系统及存储介质
KR20130114633A (ko) 효율적인 가치저장 카드 거래
CN109285069B (zh) 资源转移方法、装置及服务器
TW201732697A (zh) 基於區塊鏈的清算系統及其方法
CN110728519B (zh) 拒付任务的处理方法、装置和服务器
CN112446786A (zh) 一种异常交易处理方法、装置、电子设备和可读存储介质
CN107123038A (zh) 账务数据处理方法及装置
CN106101179A (zh) 资源处理方法、装置和系统
CN115271694A (zh) 订单支付方法及系统
CN111552697A (zh) 一种解决银行核心系统热点账户的高并发处理方法
CN113506112A (zh) 应收账款确权方法及装置和电子设备
JP2010271813A (ja) 決済処理方法及び装置
CN117196520A (zh) 供应商管理方法、系统、计算机设备及存储介质
CN112465628A (zh) 数据核销方法、装置、电子设备和存储介质
JP2016095686A (ja) 電子記録債権の担保管理サービスシステムおよび方法
CN109064148A (zh) 一种与区块链分布式网络可操作地连接的系统
CN111737262B (zh) 一种数据处理方法及装置
CN111160885B (zh) 账务处理方法及装置
CN112235110A (zh) 区块链的跨链业务处理方法、装置及电子设备
CN113656415B (zh) 支付方法、支付装置、支付设备及存储介质
CN115564420A (zh) 基于区块链的跨境汇款处理方法及装置

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
TA01 Transfer of patent application right
TA01 Transfer of patent application right

Effective date of registration: 20200925

Address after: Cayman Enterprise Centre, 27 Hospital Road, George Town, Grand Cayman Islands

Applicant after: Innovative advanced technology Co.,Ltd.

Address before: Cayman Enterprise Centre, 27 Hospital Road, George Town, Grand Cayman Islands

Applicant before: Advanced innovation technology Co.,Ltd.

Effective date of registration: 20200925

Address after: Cayman Enterprise Centre, 27 Hospital Road, George Town, Grand Cayman Islands

Applicant after: Advanced innovation technology Co.,Ltd.

Address before: A four-storey 847 mailbox in Grand Cayman Capital Building, British Cayman Islands

Applicant before: Alibaba Group Holding Ltd.

GR01 Patent grant
GR01 Patent grant