CN116703584A - 一种基于两阶段提交机制的交易方法、装置、设备及介质 - Google Patents
一种基于两阶段提交机制的交易方法、装置、设备及介质 Download PDFInfo
- Publication number
- CN116703584A CN116703584A CN202310618130.0A CN202310618130A CN116703584A CN 116703584 A CN116703584 A CN 116703584A CN 202310618130 A CN202310618130 A CN 202310618130A CN 116703584 A CN116703584 A CN 116703584A
- Authority
- CN
- China
- Prior art keywords
- transaction
- execution
- participant
- participants
- identifier
- 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
- 230000007246 mechanism Effects 0.000 title claims abstract description 51
- 238000000034 method Methods 0.000 title claims abstract description 43
- 230000002159 abnormal effect Effects 0.000 claims description 10
- 230000008569 process Effects 0.000 claims description 10
- 238000012545 processing Methods 0.000 claims description 2
- 230000000903 blocking effect Effects 0.000 description 11
- 238000010586 diagram Methods 0.000 description 6
- 230000004048 modification Effects 0.000 description 4
- 238000012986 modification Methods 0.000 description 4
- 230000008859 change Effects 0.000 description 2
- 238000005096 rolling process Methods 0.000 description 2
- 238000012795 verification Methods 0.000 description 2
- 238000007792 addition Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000037430 deletion Effects 0.000 description 1
- 238000012217 deletion Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000000977 initiatory effect Effects 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
- 238000011084 recovery Methods 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q40/00—Finance; Insurance; Tax strategies; Processing of corporate or income taxes
- G06Q40/04—Trading; Exchange, e.g. stocks, commodities, derivatives or currency exchange
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Business, Economics & Management (AREA)
- Accounting & Taxation (AREA)
- Finance (AREA)
- Engineering & Computer Science (AREA)
- Development Economics (AREA)
- Economics (AREA)
- Marketing (AREA)
- Strategic Management (AREA)
- Technology Law (AREA)
- Physics & Mathematics (AREA)
- General Business, Economics & Management (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请实施例公开了一种基于两阶段提交机制的交易方法、装置、设备及介质。向当前交易参与方发送交易预执行请求;其中,交易预执行请求中包括有交易标识;接收交易参与方发送的交易预执行结果;在预设超时时限内未接受到全部交易参与方的交易在执行结果的情况下,基于交易标识重新对交易参与方发送交易预执行请求;通过交易标识与交易参与方对应的交易执行记录,获取交易执行结果;在交易预执行结果为成功的情况下,向交易参与方发送交易正式执行请求,并在接收到交易参与方发送的交易成功信息后,确定当前交易完成。通过上述方法解决由于网络原因各交易参与方难以一致提交或回滚的问题。
Description
技术领域
本申请涉及分布式交易技术领域,尤其涉及一种基于两阶段提交机制的交易方法、装置、设备及介质。
背景技术
在分布式架构下,交易服务往往涉及到多个参与者,这些参与者分布在不同的应用,相互之间提交或回滚难以统一协调,从而很难保证交易服务可靠进行。
现有技术中,通常使用两阶段提交机制可以一定程度上解决交易服务的可靠性问题。两阶段提交机制是将对数据的写入分解为两个阶段,每个阶段结束都有一个完成的验证。
但两阶段提交机制难以完全杜绝因断网、长时间阻塞等异常情况,造成的各参与者难以一致提交或回滚的问题。
发明内容
本申请实施例提供了一种一种基于两阶段提交机制的交易方法、装置、设备及介质,用于解决如下技术问题:两阶段提交机制难以完全杜绝因断网、长时间阻塞等异常情况,造成的各参与者难以一致提交或回滚的问题。
本申请实施例采用下述技术方案:
本申请实施例提供一种基于两阶段提交机制的交易方法。包括,向当前交易参与方发送交易预执行请求;其中,交易预执行请求中包括有交易标识;接收交易参与方发送的交易预执行结果;在预设超时时限内未接受到全部交易参与方的交易执行结果的情况下,基于交易标识重新对交易参与方发送交易预执行请求;通过交易标识与交易参与方对应的交易执行记录,获取交易执行结果;在交易预执行结果为成功的情况下,向交易参与方发送交易正式执行请求,并在接收到交易参与方发送的交易成功信息后,确定当前交易完成。
本申请实施例通过为交易服务分配唯一的唯一标识,确保在断网或长时间阻塞时,可以由协调者发起询问,重新根据唯一标识在参与方获取交易的最新状态。解决了两阶段提交机制无法避免因为网络和阻塞原因造成交易提交或回滚不一致的问题。本申请实施例使用唯一标识作为交易的唯一标识,并在每个参与者中记录交易的状态,各个交易参与方能够根据唯一标识查询本次交易执行的状态,从而在网络异常的情况下,能够对交易状态进行再次查询,以确保将交易状态进行成功传输。
在本申请的一种实现方式中,向当前交易参与方发送交易预执行请求之前,方法还包括:生成当前交易对应的交易标识;锁定交易资源;基于交易资源进行交易预执行,并对交易预执行进行日志记录;在交易预执行成功的情况下,想当前交易参与方发送交易预执行请求,否则结束当前交易。
在本申请的一种实现方式中,向当前交易参与方发送交易预执行请求之后,方法还包括:通过交易参与方对交易标识,以及交易标识对应的参数进行记录;通过交易参与方生成当前交易对应的交易标识;通过交易参与方锁定交易资源;通过交易参与方基于交易资源进行交易预执行,并对交易预执行进行日志记录;其中,交易预执行中对交易资源进行不释放处理。
在本申请的一种实现方式中,向交易参与方发送交易正式执行请求之后,方法还包括:通过交易参与方对交易资源进行释放处理,并对交易资源释放过程进行日志记录;在交易参与方交易释放失败的情况下,通过交易参与方发送交易失败反馈;基于交易失败反馈,获取到交易失败的交易参与方信息,并向交易失败的交易参与方发送交易回滚请求,以使交易失败的交易参与方进行交易回滚,以释放资源。
在本申请的一种实现方式中,通过交易标识与交易参与方对应的交易执行记录,获取交易执行结果,具体包括:通过交易标识,在交易参与方对应的交易执行记录中确定出相应的交易信息;对交易信息进行结果查询,以确定出交易执行结果。
在本申请的一种实现方式中,预设超时时限内未接受到全部交易参与方的交易执行结果的情况,具体包括:当前网络异常,且任一交易参与方所对应的交易预执行结果已生成的情况;或者当前网络阻塞,且任一交易参与方所对应的交易预执行结果已生成的情况下,预设超时时限内未接受到全部交易参与方的交易在执行结果。
在本申请的一种实现方式中,获取交易执行结果之后,方法还包括:在执行结果存在一个或多个为交易失败的情况下,向所有参与方发送回滚通知;通过各参与方进行回滚资源释放,并对回滚过程进行记录;接收各参与方分别发送的交易失败通知,以结束当前交易。
本申请实施例提供一种基于两阶段提交机制的交易装置,包括:交易预执行请求发送单元,向当前交易参与方发送交易预执行请求;其中,交易预执行请求中包括有交易标识;执行结果接收单元,接收交易参与方发送的交易预执行结果;交易预执行请求重新发送单元,在预设超时时限内未接受到全部交易参与方的交易执行结果的情况下,基于交易标识重新对交易参与方发送交易预执行请求;执行结果获取单元,通过交易标识与交易参与方对应的交易执行记录,获取交易执行结果;交易完成确定单元,在交易预执行结果为成功的情况下,向交易参与方发送交易正式执行请求,并在接收到交易参与方发送的交易成功信息后,确定当前交易完成。
本申请实施例提供一种基于两阶段提交机制的交易设备,包括:至少一个处理器;以及,与至少一个处理器通信连接的存储器;其中,存储器存储有可被至少一个处理器执行的指令,指令被至少一个处理器执行,以使至少一个处理器能够:交易预执行请求发送单元,向当前交易参与方发送交易预执行请求;其中,交易预执行请求中包括有交易标识;执行结果接收单元,接收交易参与方发送的交易预执行结果;交易预执行请求重新发送单元,在预设超时时限内未接受到全部交易参与方的交易执行结果的情况下,基于交易标识重新对交易参与方发送交易预执行请求;执行结果获取单元,通过交易标识与交易参与方对应的交易执行记录,获取交易执行结果;交易完成确定单元,在交易预执行结果为成功的情况下,向交易参与方发送交易正式执行请求,并在接收到交易参与方发送的交易成功信息后,确定当前交易完成。
本申请实施例提供的一种非易失性计算机存储介质,存储有计算机可执行指令,计算机可执行指令设置为:交易预执行请求发送单元,向当前交易参与方发送交易预执行请求;其中,交易预执行请求中包括有交易标识;执行结果接收单元,接收交易参与方发送的交易预执行结果;交易预执行请求重新发送单元,在预设超时时限内未接受到全部交易参与方的交易执行结果的情况下,基于交易标识重新对交易参与方发送交易预执行请求;执行结果获取单元,通过交易标识与交易参与方对应的交易执行记录,获取交易执行结果;交易完成确定单元,在交易预执行结果为成功的情况下,向交易参与方发送交易正式执行请求,并在接收到交易参与方发送的交易成功信息后,确定当前交易完成。
本申请实施例采用的上述至少一个技术方案能够达到以下有益效果:本申请实施例通过为交易服务分配唯一的唯一标识,确保在断网或长时间阻塞时,可以由协调者发起询问,重新根据唯一标识在参与方获取交易的最新状态。解决了两阶段提交机制无法避免因为网络和阻塞原因造成交易提交或回滚不一致的问题。本申请实施例使用唯一标识作为交易的唯一标识,并在每个参与者中记录交易的状态,各个交易参与方能够根据唯一标识查询本次交易执行的状态,从而在网络异常的情况下,能够对交易状态进行再次查询,以确保将交易状态进行成功传输。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请中记载的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。在附图中:
图1为本申请实施例提供的一种基于两阶段提交机制的交易方法流程图;
图2为本申请实施例提供的一种基于两阶段提交机制的交易过程示意图;
图3为本申请实施例提供的一种基于两阶段提交机制的装置示意图;
图4为本申请实施例提供的一种基于两阶段提交机制的交易设备的结构示意图。
具体实施方式
本申请实施例提供一种基于两阶段提交机制的交易方法、装置、设备及介质。
为了使本技术领域的人员更好地理解本申请中的技术方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本说明书实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都应当属于本申请保护的范围。
在分布式架构下,交易服务往往涉及到多个参与者,这些参与者分布在不同的应用,相互之间提交或回滚难以统一协调,从而很难保证交易服务可靠进行。
现有技术中,通常使用两阶段提交机制可以一定程度上解决交易服务的可靠性问题。两阶段提交机制是将对数据的写入分解为两个阶段,每个阶段结束都有一个完成的验证。
但两阶段提交机制难以完全杜绝因断网、长时间阻塞等异常情况,造成的各参与者无法一致提交或回滚的问题。
为了解决上述问题,本申请实施例提供一种基于两阶段提交机制的交易方法、装置、设备及介质。通过为交易服务分配唯一的唯一标识,确保在断网或长时间阻塞时,可以由协调者发起询问,重新根据唯一标识在参与方获取交易的最新状态。解决了两阶段提交机制无法避免因为网络和阻塞原因造成交易提交或回滚不一致的问题。本申请实施例使用唯一标识作为交易的唯一标识,并在每个参与者中记录交易的状态,各个交易参与方能够根据唯一标识查询本次交易执行的状态,从而在网络异常的情况下,能够对交易状态进行再次查询,以确保将交易状态进行成功传输。
下面通过附图对本申请实施例提出的技术方案进行详细的说明。
图1为本申请实施例提供的一种基于两阶段提交机制的交易方法流程图。如图1所示,基于两阶段提交机制的交易方法包括如下步骤:
S101、向当前交易参与方发送交易预执行请求;其中,交易预执行请求中包括有交易标识。
在本申请的一个实施例中,当某次服务请求会导致业务数据发生变化的,称之为交易服务。业务数据修改包括数据库DML操作、文件***或其他非结构化数据的新增、修改、删除等操作。普通查询服务未造成业务数据变动的不视为交易服务。
可靠交易:当交易服务具备原子性时,称之为可靠交易。
两阶段提交机制:为了使基于分布式***架构下的所有节点在进行事务提交时保持一致性而设计的一种算法。
某次交易的唯一标识:交易的各个参与方使用该标识来记录交易调用日志和交易状态。
交易日志:各个交易的参与方记录的本次交易相关日志,可以根据日志对交易进行恢复。
在本申请的一个实施例中,生成当前交易对应的交易标识。锁定交易资源。基于交易资源进行交易预执行,并对交易预执行进行日志记录。在交易预执行成功的情况下,向当前交易参与方发送交易预执行请求,否则结束当前交易。
具体地,每一次交易服务分为两个阶段执行,第一阶段为投票阶段,协调者负责发起询问并收集参与者的反馈;第二阶段为执行阶段,根据参与者是否就绪的反馈,决定提交还是回滚交易。第一阶段:协调者发起交易,生成交易唯一标识。首先协调者应锁定自身交易资源并完成预执行操作,记录操作日志,如果自身预执行失败,则不再向参与者发起交易询问。协调者成功完成预执行操作后,向所有的参与者发起交易预执行的请求,并告诉各参与者本次交易的唯一标识。
S102、接收交易参与方发送的交易预执行结果。
在本申请的一个实施例中,通过交易参与方对交易标识,以及交易标识对应的参数进行记录。通过交易参与方生成当前交易对应的交易标识。通过交易参与方锁定交易资源。通过交易参与方基于交易资源进行交易预执行,并对交易预执行进行日志记录;其中,交易预执行中对交易资源进行不释放处理。
具体地,参与者收到协调者的预执行请求后,记录本次交易的唯一标识、参数,开始对交易资源进行加锁并预执行。预执行阶段记录交易日志用于交易恢复,预执行成功后,不释放交易资源,并向交易的协调者反馈第一阶段就绪;如果预执行失败,则向交易的协调者反馈第一阶段失败通知。
接收各交易参与方发送的交易预执行通知,通过所有参与方分别发送的交易预执行结果,对各参与方分别发送下一步的交易执行通知。
S103、在预设超时时限内未接受到全部交易参与方的交易在执行结果的情况下,基于交易标识重新对交易参与方发送交易预执行请求。
在本申请的一个实施例中,本申请实施例中的唯一标识,用来应对网络异常、长时间阻塞等异常情况。当前网络异常,且任一交易参与方所对应的交易预执行结果已生成的情况下,预设超时时限内未接受到全部交易参与方的交易执行结果。或者当前网络阻塞,且任一交易参与方所对应的交易预执行结果已生成的情况下,预设超时时限内未接受到全部交易参与方的交易在执行结果。
进一步地,某个交易的参与者成功准备就绪或提交完成,但是由于网络或阻塞原因协调者并未在超时时限内收到该参与者的反馈,此时协调者可以根据唯一标识重新发起询问,参与者收到协调者的询问请求后,根据唯一标识查询本次交易执行的状态,并反馈给协调者。
S104、通过交易标识与交易参与方对应的交易执行记录,获取交易执行结果。
在本申请的一个实施例中,通过交易标识,在交易参与方对应的交易执行记录中确定出相应的交易信息。对交易信息进行结果查询,以确定出交易执行结果。
具体地,参与者收到协调者的预执行请求后,记录本次交易的唯一标识、参数,开始对交易资源进行加锁并预执行。由于网络或阻塞原因协调者并未在超时时限内收到该参与者的反馈,此时协调者可以根据唯一标识重新发起询问,参与者收到协调者的询问请求后,根据唯一标识查询本次交易执行的状态,并反馈给协调者。
S105、在交易预执行结果为成功的情况下,向交易参与方发送交易正式执行请求,并在接收到交易参与方发送的交易成功信息后,确定当前交易完成。
在本申请的一个实施例中,通过交易参与方对交易资源进行释放处理,并对交易资源释放过程进行日志记录。在交易参与方交易释放失败的情况下,通过交易参与方发送交易失败反馈。基于交易失败反馈,获取到交易失败的交易参与方信息,并向交易失败的交易参与方发送交易回滚请求,以使交易失败的交易参与方进行交易回滚,以释放资源。
具体地,协调者在超时时限内收到各参与者反馈的就绪状态后,向各参与者发起正式提交的请求,所有的参与者收到协调者正式提交的请求后,完成交易、释放资源并告诉协调者交易完成,协调者在收到所有参与者完成交易的反馈后,结束交易,本次交易成功。如果任一参与者反馈第一阶段失败,则协调者收到反馈后,向所有的参与者发送交易回滚的请求,所有参与者回滚交易,释放资源,本次交易失败。
在本申请的一个实施例中,在执行结果存在一个或多个为交易失败的情况下,向所有参与方发送回滚通知。通过各参与方进行回滚资源释放,并对回滚过程进行记录。接收各参与方分别发送的交易失败通知,以结束当前交易。
具体地,在一个交易参与方或者多个交易参与方存在交易失败的情况下,向各个交易参与方发送交易回滚通知。所有参与者回滚交易,释放资源,本次交易失败。
本申请时一种基于两阶段提交机制的可靠交易平台,用于保证分布式交易中,所有的交易参与方能够一致提交或回滚,确保交易的原子性。应答客户端的参与者作为协调者,其他参与方作为参与者,当交易发起时,由协调者生成一个唯一标识,作为本次交易的唯一标识。唯一标识会发送给交易的各个参与者,各个参与者以唯一标识作为索引,保存本次交易的参数、交易日志。然后按照两阶段提交的机制,发起询问和提交。两阶段提交机制用来协调交易的参与方一致提交或回滚,唯一标识用来应对断网、超时阻塞等特殊状况导致的交易原子性被破坏的问题。
本申请实施例通过为交易服务分配唯一的唯一标识,来确保在断网或长时间阻塞时,可以由协调者发起询问,重新根据唯一标识在参与方获取交易的最新状态。解决了典型两阶段提交机制无法避免因为网络和阻塞原因造成交易提交或回滚不一致的问题。为分布式***提供了一种可靠交易算法。
图2为本申请实施例提供的一种基于两阶段提交机制的交易过程示意图。如图2所示,协调者在开始交易后,先发起交易,并生交易唯一标识。锁定资源预执行当前交易并记录日志。若预执行失败,则当前交易失败。若预执行交易成功,则向各交易参与方发送交易请求,以通知各交易参与方准备交易。各交易参与方通过交易请求中的唯一标识,进行交易资源锁定,并预执行交易进行日志记录。各交易参与方将交易预执行结果发送至协调者,协调者在预设时长内未接收到交易预执行结果,则向相应的交易方发起询问,交易参与方根据唯一标识在记录的日志中对交易预执行结果进行查询,并将其反馈至协调者。协调者在接收到所有交易参与方发送的交易预执行结果后,若各个交易参与方均为交易预执行成功的结果,则提交释放资源记录,并通知各个交易参与方执行提交。各个交易参与方将交易成功结果发送至协调者,此时当前交易完成。若存在一个或多个交易参与方的预执行结果为不成功的情况下,协调者进行回滚并释放资源进行记录,通过各参与方执行回滚,并确定当前交易失败。
图3为本申请实施例提供的一种基于两阶段提交机制的装置示意图。如图3所示,基于两阶段提交机制的装置300包括:
交易预执行请求发送单元301,向当前交易参与方发送交易预执行请求;其中,所述交易预执行请求中包括有交易标识;
执行结果接收单元302,接收所述交易参与方发送的交易预执行结果;
交易预执行请求重新发送单元303,在预设超时时限内未接受到全部交易参与方的交易执行结果的情况下,基于所述交易标识重新对所述交易参与方发送交易预执行请求;
执行结果获取单元304,通过所述交易标识与所述交易参与方对应的交易执行记录,获取所述交易执行结果;
交易完成确定单元305,在所述交易预执行结果为成功的情况下,向所述交易参与方发送交易正式执行请求,并在接收到所述交易参与方发送的交易成功信息后,确定当前交易完成。
基于两阶段提交机制装置还包括:
交易标识生成单元306,生成当前交易对应的交易标识;锁定交易资源;基于所述交易资源进行交易预执行,并对所述交易预执行进行日志记录;在所述交易预执行成功的情况下,向所述当前交易参与方发送交易预执行请求,否则结束当前交易。
基于两阶段提交机制装置还包括:
交易预执行单元307,通过所述交易参与方对所述交易标识,以及所述交易标识对应的参数进行记录;通过所述交易参与方记录当前交易对应的交易标识;通过所述交易参与方锁定交易资源;通过所述交易参与方基于所述交易资源进行交易预执行,并对所述交易预执行进行日志记录;其中,所述交易预执行中对所述交易资源进行不释放处理。
基于两阶段提交机制装置还包括:
交易失败反馈单元308,通过所述交易参与方对所述交易资源进行释放处理,并对交易资源释放过程进行日志记录;在所述交易参与方交易释放失败的情况下,通过所述交易参与方发送交易失败反馈;基于所述交易失败反馈,获取到交易失败的交易参与方信息,并向所述交易失败的交易参与方发送交易回滚请求,以使所述交易失败的交易参与方进行交易回滚,以释放资源。
基于两阶段提交机制装置还包括:
交易信息查询单元309,通过所述交易标识,在所述交易参与方对应的交易执行记录中确定出相应的交易信息;对所述交易信息进行结果查询,以确定出所述交易执行结果。
基于两阶段提交机制装置还包括:
网络异常情况单元310,当前网络异常,且任一交易参与方所对应的交易预执行结果已生成的情况下,所述预设超时时限内未接受到全部交易参与方的交易执行结果;或者当前网络阻塞,且任一交易参与方所对应的交易预执行结果已生成的情况下,所述预设超时时限内未接受到全部交易参与方的交易在执行结果。
基于两阶段提交机制装置还包括:
交易结束单元311,在所述执行结果存在一个或多个为交易失败的情况下,向所有参与方发送回滚通知;通过各参与方进行回滚资源释放,并对回滚过程进行记录;接收所述各参与方分别发送的交易失败通知,以结束当前交易。
图4为本申请实施例提供的一种基于两阶段提交机制的交易设备的结构示意图。如图4所示,基于两阶段提交机制的交易设备,包括:至少一个处理器;以及,与所述至少一个处理器通信连接的存储器;其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够:向当前交易参与方发送交易预执行请求;其中,所述交易预执行请求中包括有交易标识;接收所述交易参与方发送的交易预执行结果;在预设超时时限内未接受到全部交易参与方的交易执行结果的情况下,基于所述交易标识重新对所述交易参与方发送交易预执行请求;通过所述交易标识与所述交易参与方对应的交易执行记录,获取所述交易执行结果;在所述交易预执行结果为成功的情况下,向所述交易参与方发送交易正式执行请求,并在接收到所述交易参与方发送的交易成功信息后,确定当前交易完成。
本申请实施例还提供一种非易失性计算机存储介质,存储有计算机可执行指令,所述计算机可执行指令设置为:向当前交易参与方发送交易预执行请求;其中,所述交易预执行请求中包括有交易标识;接收所述交易参与方发送的交易预执行结果;在预设超时时限内未接受到全部交易参与方的交易执行结果的情况下,基于所述交易标识重新对所述交易参与方发送交易预执行请求;通过所述交易标识与所述交易参与方对应的交易执行记录,获取所述交易执行结果;在所述交易预执行结果为成功的情况下,向所述交易参与方发送交易正式执行请求,并在接收到所述交易参与方发送的交易成功信息后,确定当前交易完成。
本申请中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置、设备、非易失性计算机存储介质实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
以上所述仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请的实施例可以有各种更改和变化。而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围。
Claims (10)
1.一种基于两阶段提交机制的交易方法,其特征在于,所述方法包括:
向当前交易参与方发送交易预执行请求;其中,所述交易预执行请求中包括有交易标识;
接收所述交易参与方发送的交易预执行结果;
在预设超时时限内未接受到全部交易参与方的交易执行结果的情况下,基于所述交易标识重新对所述交易参与方发送交易预执行请求;
通过所述交易标识与所述交易参与方对应的交易执行记录,获取所述交易执行结果;
在所述交易预执行结果为成功的情况下,向所述交易参与方发送交易正式执行请求,并在接收到所述交易参与方发送的交易成功信息后,确定当前交易完成。
2.根据权利要求1所述的一种基于两阶段提交机制的交易方法,其特征在于,所述向当前交易参与方发送交易预执行请求之前,所述方法还包括:
生成当前交易对应的交易标识;
锁定交易资源;
基于所述交易资源进行交易预执行,并对所述交易预执行进行日志记录;
在所述交易预执行成功的情况下,向所述当前交易参与方发送交易预执行请求,否则结束当前交易。
3.根据权利要求1所述的一种基于两阶段提交机制的交易方法,其特征在于,所述向当前交易参与方发送交易预执行请求之后,所述方法还包括:
通过所述交易参与方对所述交易标识,以及所述交易标识对应的参数进行记录;
通过所述交易参与方记录当前前交易对应的交易标识;
通过所述交易参与方锁定交易资源;
通过所述交易参与方基于所述交易资源进行交易预执行,并对所述交易预执行进行日志记录;其中,所述交易预执行中对所述交易资源进行不释放处理。
4.根据权利要求1所述的一种基于两阶段提交机制的交易方法,其特征在于,所述向所述交易参与方发送交易正式执行请求之后,所述方法还包括:
通过所述交易参与方对所述交易资源进行释放处理,并对交易资源释放过程进行日志记录;
在所述交易参与方交易释放失败的情况下,通过所述交易参与方发送交易失败反馈;
基于所述交易失败反馈,获取到交易失败的交易参与方信息,并向所述交易失败的交易参与方发送交易回滚请求,以使所述交易失败的交易参与方进行交易回滚,以释放资源。
5.根据权利要求1所述的一种基于两阶段提交机制的交易方法,其特征在于,所述通过所述交易标识与所述交易参与方对应的交易执行记录,获取所述交易执行结果,具体包括:
通过所述交易标识,在所述交易参与方对应的交易执行记录中确定出相应的交易信息;
对所述交易信息进行结果查询,以确定出所述交易执行结果。
6.根据权利要求1所述的一种基于两阶段提交机制的交易方法,其特征在于,所述预设超时时限内未接受到全部交易参与方的交易在执行结果的情况,具体包括:
当前网络异常,且任一交易参与方所对应的交易预执行结果已生成的情况下,所述预设超时时限内未接受到全部交易参与方的交易执行结果;或者
当前网络阻塞,且任一交易参与方所对应的交易预执行结果已生成的情况下,所述预设超时时限内未接受到全部交易参与方的交易执行结果。
7.根据权利要求1所述的一种基于两阶段提交机制的交易方法,其特征在于,所述获取所述交易执行结果之后,所述方法还包括:
在所述执行结果存在一个或多个为交易失败的情况下,向所有参与方发送回滚通知;
通过各参与方进行回滚资源释放,并对回滚过程进行记录;
接收所述各参与方分别发送的交易失败通知,以结束当前交易。
8.一种基于两阶段提交机制的交易装置,包括:
交易预执行请求发送单元,向当前交易参与方发送交易预执行请求;其中,所述交易预执行请求中包括有交易标识;
执行结果接收单元,接收所述交易参与方发送的交易预执行结果;
交易预执行请求重新发送单元,在预设超时时限内未接受到全部交易参与方的交易执行结果的情况下,基于所述交易标识重新对所述交易参与方发送交易预执行请求;
执行结果获取单元,通过所述交易标识与所述交易参与方对应的交易执行记录,获取所述交易执行结果;
交易完成确定单元,在所述交易预执行结果为成功的情况下,向所述交易参与方发送交易正式执行请求,并在接收到所述交易参与方发送的交易成功信息后,确定当前交易完成。
9.一种基于两阶段提交机制的交易设备,包括:
至少一个处理器;以及,
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够:
向当前交易参与方发送交易预执行请求;其中,所述交易预执行请求中包括有交易标识;
接收所述交易参与方发送的交易预执行结果;
在预设超时时限内未接受到全部交易参与方的交易执行结果的情况下,基于所述交易标识重新对所述交易参与方发送交易预执行请求;
通过所述交易标识与所述交易参与方对应的交易执行记录,获取所述交易执行结果;
在所述交易预执行结果为成功的情况下,向所述交易参与方发送交易正式执行请求,并在接收到所述交易参与方发送的交易成功信息后,确定当前交易完成。
10.一种非易失性计算机存储介质,存储有计算机可执行指令,所述计算机可执行指令设置为:
向当前交易参与方发送交易预执行请求;其中,所述交易预执行请求中包括有交易标识;
接收所述交易参与方发送的交易预执行结果;
在预设超时时限内未接受到全部交易参与方的交易执行结果的情况下,基于所述交易标识重新对所述交易参与方发送交易预执行请求;
通过所述交易标识与所述交易参与方对应的交易执行记录,获取所述交易执行结果;
在所述交易预执行结果为成功的情况下,向所述交易参与方发送交易正式执行请求,并在接收到所述交易参与方发送的交易成功信息后,确定当前交易完成。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310618130.0A CN116703584A (zh) | 2023-05-26 | 2023-05-26 | 一种基于两阶段提交机制的交易方法、装置、设备及介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310618130.0A CN116703584A (zh) | 2023-05-26 | 2023-05-26 | 一种基于两阶段提交机制的交易方法、装置、设备及介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116703584A true CN116703584A (zh) | 2023-09-05 |
Family
ID=87823104
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310618130.0A Pending CN116703584A (zh) | 2023-05-26 | 2023-05-26 | 一种基于两阶段提交机制的交易方法、装置、设备及介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116703584A (zh) |
-
2023
- 2023-05-26 CN CN202310618130.0A patent/CN116703584A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109542639B (zh) | 一种保障微服务调用数据一致性的处理方法、处理装置 | |
CN110647580B (zh) | 分布式容器集群镜像管理主节点、从节点、***及方法 | |
CN111367628B (zh) | 分布式事务的处理方法、装置及消息生产方、消费方*** | |
US7673307B2 (en) | Managing transactions in a messaging system | |
CN112988883B (zh) | 数据库的数据同步方法、装置以及存储介质 | |
US8006248B2 (en) | Method, apparatus and computer program for facilitating communication between a client application and a server application | |
WO2011120452A2 (zh) | 更新数据的方法和控制装置 | |
CN110413687B (zh) | 基于节点互证校验的分布式事务故障处理方法及相关设备 | |
US20060149791A1 (en) | Database-driven distributed recovery | |
CN112995262B (zh) | 分布式事务提交方法、***及计算设备 | |
EP0834122A1 (en) | Synchronisation procedure in a routing node | |
US20040024807A1 (en) | Asynchronous updates of weakly consistent distributed state information | |
CN116384993B (zh) | 基于云支付中心实现订单支付状态高一致性的方法与*** | |
CN112632093A (zh) | 工单处理方法、设备、***、存储介质及程序产品 | |
CN116703584A (zh) | 一种基于两阶段提交机制的交易方法、装置、设备及介质 | |
CN112698969A (zh) | 一种基于消息落库的mq消息可靠性投递解决方法 | |
US20040008678A1 (en) | System and method for managing transactions in a messaging system | |
CN111190754A (zh) | 一种区块链事件通知方法及区块链*** | |
CN116107706A (zh) | 分布式数据库的事务处理方法、装置、电子设备及存储介质 | |
US20090106781A1 (en) | Remote call handling methods and systems | |
CN115544034A (zh) | 一种数据一致性方法及业务*** | |
CN115643271A (zh) | 一种云上多应用数据同步方法、装置、服务器及介质 | |
JP5515286B2 (ja) | 分散トランザクション処理システム、サーバ装置及びそれらに用いる分散トランザクションの障害復旧方法 | |
CN114595071A (zh) | 一种券商核心交易数据同步***及方法 | |
CN113177052A (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 |