CN115390998A - 分布式事务处理方法、装置及电子设备 - Google Patents
分布式事务处理方法、装置及电子设备 Download PDFInfo
- Publication number
- CN115390998A CN115390998A CN202110574442.7A CN202110574442A CN115390998A CN 115390998 A CN115390998 A CN 115390998A CN 202110574442 A CN202110574442 A CN 202110574442A CN 115390998 A CN115390998 A CN 115390998A
- Authority
- CN
- China
- Prior art keywords
- service
- database
- processed
- storage space
- instruction
- 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
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/466—Transaction processing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3003—Monitoring arrangements specially adapted to the computing system or computing system component being monitored
- G06F11/3034—Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is a storage system, e.g. DASD based or network based
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computing Systems (AREA)
- Mathematical Physics (AREA)
- Quality & Reliability (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明实施例提供了一种分布式事务处理方法、装置及电子设备,所述方法包括实时监听待处理业务,并在监听到待处理业务请求数据库时,获取待处理业务请求数据库时对应的数据库指令以及预设的存储空间,将数据库指令存储至存储空间,判断待处理业务是否处理完成,得到判断结果,若判断结果为否,则继续监听待处理业务,并在监听到待处理业务请求数据库时,获取新的数据库指令,并将新的数据库指令存储至存储空间中,若判断结果为是,则批量执行存储空间中的至少一数据库指令,以实现待处理业务。减少了不同服务之间的阻塞,保证了业务的正常实现。
Description
技术领域
本发明实施例涉及数据处理技术领域,尤其涉及一种分布式事务处理方法、装置及电子设备。
背景技术
分布式事务是指事务的参与者、支持者的服务器、资源服务器以及协调者分别位于不同的分布式系统的不同节点之上,或者可以理解为,一次大的操作由不同的小操作组成,这些小的操作分布在不同的服务器上,且属于不同的业务应用。
现有技术中,分布式事务的实现过程主要可以包括两个阶段,一个是准备阶段(Prepare Phase),另一个是提交阶段(Commit Phase)。对应的,准备阶段为协调者给每个参与者发送Prepare消息,每个数据库参与者在本地执行事务,并写本地的Undo/Redo日志,此时事务没有提交。提交阶段为如果协调者收到了参与者的执行失败或者超时消息时,直接给每个参与者发送回滚(Rollback)消息;否则,发送提交(Commit)消息,参与者可以根据协调者的指令执行提交或者回滚操作,并释放事务处理过程中锁定的资源。
然而,上述两阶段实现分布式事务的过程中,所有参与节点都是事务阻塞型的,当参与者占有公共资源时,其他参与者节点访问公共资源时均需处于阻塞状态。且一旦某一服务发生故障,所有的参与者均处于锁定事务资源的状态中,无法继续完成事务的后续操作,影响了业务的正常实现。
发明内容
本发明实施例提供一种分布式事务处理方法、装置及电子设备,以避免二阶段实现分布式事务实现过程中资源一直被锁定,导致业务无法正常实现的问题。
第一方面,本发明实施例提供一种分布式事务处理方法,包括:
实时监听待处理业务,并在监听到所述待处理业务请求数据库时,获取所述待处理业务请求数据库时对应的数据库指令以及预设的存储空间;
将所述数据库指令存储至所述存储空间;
判断所述待处理业务是否处理完成,得到判断结果;
若所述判断结果为否,则继续监听所述待处理业务,并在监听到所述待处理业务请求数据库时,获取新的数据库指令,并将所述新的数据库指令存储至所述存储空间中;
若所述判断结果为是,则批量执行所述存储空间中的至少一数据库指令,以实现所述待处理业务。
可选的,所述待处理业务包括一个第一服务和至少一个第二服务,
则所述在监听到所述待处理业务请求数据库时,获取所述待处理业务请求数据库时对应的数据库指令以及预设的存储空间,包括:
在监听到所述待处理业务中的第一服务请求数据库时,获取所述待处理业务中的第一服务请求数据库时对应的第一数据库指令以及预设的与所述待处理业务对应的存储空间;
所述将所述数据库指令存储至所述存储空间,包括:
将所述第一数据库指令存储至所述存储空间。
可选的,所述存储空间包含存储空间标识,在所述将所述第一数据库指令存储至所述存储空间之后,还包括:
若监听到所述第一服务调用任一第二服务时,将所述存储空间标识发送至所述第二服务,以使所述第二服务根据所述存储空间标识进行校验;
若接收到所述第二服务发送的校验成功提示,则继续监听所述第一服务对应的第一数据库指令以及所述第二服务对应的第二数据库指令;
将监听到的各第一数据库指令以及各第二数据库指令存储至所述存储空间,并在所述待处理业务处理完成时,批量执行所述存储空间中的各第一数据库指令以及各第二数据库指令。
可选的,所述方法还包括:
若接收到所述第二服务发送的校验失败提示,则释放所述存储空间,并生成待处理业务执行失败提示。
可选的,所述方法还包括:
若所述存储空间中的数据库指令均执行成功,则生成执行成功提示。
可选的,所述方法还包括:
若所述存储空间中任一数据库指令执行失败,则回滚所述存储空间中的数据库指令。
第二方面,本发明实施例提供一种分布式事务处理装置,包括:
获取模块,用于实时监听待处理业务,并在监听到所述待处理业务请求数据库时,获取所述待处理业务请求数据库时对应的数据库指令以及预设的存储空间;
处理模块,用于将所述数据库指令存储至所述存储空间;
所述处理模块,还用于判断所述待处理业务是否处理完成,得到判断结果;
所述处理模块,还用于若所述判断结果为否,则继续监听所述待处理业务,并在监听到所述待处理业务请求数据库时,获取新的数据库指令,并将所述新的数据库指令存储至所述存储空间中;
所述处理模块,还用于若所述判断结果为是,则批量执行所述存储空间中的至少一数据库指令,以实现所述待处理业务。
第三方面,本发明实施例提供一种电子设备,包括:至少一个处理器和存储器;
所述存储器存储计算机执行指令;
所述至少一个处理器执行所述存储器存储的计算机执行指令,使得所述至少一个处理器执行如第一方面任一项所述的分布式事务处理方法。
第四方面,本发明实施例提供一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机执行指令,当处理器执行所述计算机执行指令时,实现如第一方面任一项所述的分布式事务处理方法。
第五方面,本发明实施例提供一种计算机程序产品,包括计算机程序,所述计算机程序被处理器执行时,实现如上第一方面以及第一方面各种可能的设计所述的分布式事务处理方法。
本发明实施例提供了一种分布式事务处理方法、装置及电子设备,采用上述方案后,能实时监听待处理业务,并在监听到待处理业务请求数据库时,获取待处理业务请求数据库时对应的数据库指令和对应的存储空间,并将该数据库指令存储至对应的存储空间中,再判断待处理业务是否处理完成,得到判断结果,若判断结果为否,则继续监听该待处理业务,并在监听到待处理业务请求数据库时,获取新的数据库指令,并将该新的数据库指令存储至存储空间中,若判断结果为是,则批量执行存储空间中的至少一数据库指令,进而实现该待处理业务,通过在提交操作数据库指令时,先将数据库指令存储在存储空间中,待业务处理完成之后,才批量执行存储空间中的数据库指令的方式,实现了一项业务对应的数据库指令同时提交的事务处理方式,减少了不同服务之间的阻塞,保证了业务的正常实现。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的现有技术中分布式事务处理过程的应用示意图;
图2为本发明实施例提供的分布式事务处理方法的流程示意图;
图3为本发明另一实施例提供的分布式事务处理方法的流程示意图;
图4为本发明实施例提供的分布式事务处理装置的结构示意图;
图5为本发明实施例提供的电子设备的硬件结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”“第四”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例还能够包括除了图示或描述的那些实例以外的其他顺序实例。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
现有技术中,分布式事务的实现过程主要可以包括两个阶段,一个是准备阶段(Prepare Phase),另一个是提交阶段(Commit Phase)。具体的,图1为本发明实施例提供的现有技术中分布式事务处理过程的应用示意图,如图1中a和图1中b所示,为分布式事务提交成功的情况,在准备阶段(Prepare phase),协调者给每个参与者发送Prepare消息,每个数据库参与者在本地执行事务,并写本地的Undo/Redo日志,此时事务没有提交。(Undo日志是记录修改前的数据,用于数据库回滚,Redo日志是记录修改后的数据,用于提交事务后写入数据文件)在提交阶段(commit phase),如果协调者收到了参与者的执行失败或者超时消息时,直接给每个参与者发送回滚(Rollback)消息;否则,发送提交(Commit)消息。参与者根据协调者的指令执行提交或者回滚操作,并释放事务处理过程中锁定的资源。其中,必须在最后阶段释放锁资源。如图1中c和图1中d所示,为分布式事务提交失败的情况,在二阶段提交过程中可能存在的问题:所有参与者在事务提交阶段处于同步阻塞状态,占用系统资源,容易导致性能瓶颈。如果协调者存在单点故障问题,或出现故障,参与者将一直处于锁定状态。此外,在二阶段提交的阶段二中,当协调者向参与者发送commit请求之后,发生了局部网络异常或者在发送commit请求过程中协调者发生了故障,导致只有一部分参与者接受到了commit请求,进而导致各参与者之间接收到的数据不一致,影响了业务的正常实现。
基于上述问题,本申请通过在提交操作数据库指令时,先将数据库指令存储在存储空间中,待业务处理完成之后,才批量执行存储空间中的数据库指令的方式,实现了一项业务对应的数据库指令需同时提交的事务处理方式,达到了既减少了不同服务之间的阻塞,又保证了业务的正常实现的技术效果。
下面以具体地实施例对本发明的技术方案进行详细说明。下面这几个具体的实施例可以相互结合,对于相同或相似的概念或过程可能在某些实施例不再赘述。
图2为本发明实施例提供的分布式事务处理方法的流程示意图,本实施例的方法可以由服务器执行。如图2所示,本实施例的方法,可以包括:
S201:实时监听待处理业务,并在监听到待处理业务请求数据库时,获取待处理业务请求数据库时对应的数据库指令以及预设的存储空间。
在本实施例中,在待处理业务执行过程中,可以实时监听待处理业务的状态。若监听到待处理业务需要请求数据库时,可以获取该待处理业务请求数据库时对应的数据库指令,并获取对应的预设的存储空间。
另外,待处理业务在执行过程中,可能涉及到一个或多个服务。
S202:将数据库指令存储至存储空间。
在本实施例中,预设的存储空间可以是新获取的存储空间,即还没有存储数据库指令的存储空间,也可以为已经存储了其他待处理业务对应的数据库指令,且剩余空间充足的存储空间。进一步的,在为待处理业务分配存储空间时,可以通过存储空间标识来区分并分配对应的存储空间。
另外,若待处理业务在执行过程中仅涉及到一个服务,可以实时监听该服务,并在监听到该服务请求数据库时,获取该服务请求数据库时对应的数据库指令以及预设的存储空间,然后将该服务对应的数据库指令存储至存储空间中。
若待处理业务在执行过程中涉及到多个服务,示例性的,可以涉及到两个、三个或者更多服务,各服务之间还可以互相调用,进而实现该待处理业务。
进一步的,待处理业务包括一个第一服务和至少一个第二服务,
则在监听到所述待处理业务请求数据库时,获取所述待处理业务请求数据库时对应的数据库指令以及预设的存储空间,具体可以包括:
在监听到待处理业务中的第一服务请求数据库时,获取待处理业务中的第一服务请求数据库时对应的第一数据库指令以及预设的与待处理业务对应的存储空间。
将第一数据库指令存储至存储空间。
具体的,可以将待处理业务中第一个请求数据库的服务称为第一服务,其他服务称为第二服务,在监听到待处理业务中的第一服务请求数据库时,可以获取待处理业务中的第一服务请求数据库时对应的第一数据库指令以及预设的与待处理业务对应的存储空间。然后将该第一数据库指令存储至存储空间中。其中,存储空间可以为队列。
另外,存储空间可以包含存储空间标识,在将第一数据库指令存储至存储空间之后,还可以包括:
若监听到第一服务调用任一第二服务时,将存储空间标识发送至第二服务,以使第二服务根据存储空间标识进行校验。
若接收到第二服务发送的校验成功提示,则继续监听所述第一服务对应的第一数据库指令以及所述第二服务对应的第二数据库指令。
将监听到的各第一数据库指令以及各第二数据库指令存储至所述存储空间,并在所述待处理业务处理完成时,批量执行存储空间中的各第一数据库指令以及各第二数据库指令。
具体的,在将第一数据库指令存储至存储空间之后,还可以继续对第一服务以及第二服务进行监听,并在监听到第一服务调用数据库时,或者第二服务调用数据库时,可以将对应的调用指令存储至存储空间,并在待处理业务处理完成时,批量执行存储空间中的数据库指令。其中,存储空间中存储有第一服务对应的各第一数据库指令和第二服务对应的各第二数据库指令,再执行数据库指令的过程中,可以根据数据库指令的存储时刻顺序执行各数据库指令。
另外,在待处理业务执行过程中,第一服务可能需要调用第二服务,在第一服务调用第二服务时,为了保证数据的安全性与准确性,第二服务可以先进行校验,并在校验通过之后再执行后续程序。
进一步的,可以进行存储单元存在性校验、业务幂等校验等,具体校验方式可以选用现有的校验方式来实现,在此不再详细进行论述。
S203:判断待处理业务是否处理完成,得到判断结果。
在本实施例中,在监听待处理业务的过程中,无论是包含一个服务的待处理业务,还是包含多个服务的待处理业务,均需要实时判断待处理业务是否处理完成,得到判断结果。
进一步的,确定待处理业务是否处理完成可以由业务侧自行决定,在同步场景下,通常由第一个服务(业务发起者服务)来决定,在异步场景下,通常由最后一个服务(业务终点)来决定。
S204:若判断结果为否,则继续监听待处理业务,并在监听到待处理业务请求数据库时,获取新的数据库指令,并将新的数据库指令存储至存储空间中。
在本实施例中,判断结果可以包括两种,一种为待处理业务处理完成(即判断结果为是),另一种为待处理业务没有处理完成(即判断结果为否),两种结果对应的后续处理过程也不同。
若判断结果为否,表明待处理业务没有处理完成,则需要在待处理业务执行过程中继续对待处理业务进行监听,并在监听到待处理业务请求数据库时,获取新的数据库指令,并将新的数据库指令存储至存储空间中,直至待处理业务处理完成。
S205:若判断结果为是,则批量执行存储空间中的至少一数据库指令,以实现待处理业务。
在本实施例中,若判断结果为是,则表明待处理业务处理完成,可以批量执行存储空间中存储的所有数据库指令。其中,若存储空间中只有一条数据库指令,则仅执行该数据库指令,若存储空间中有多条数据库指令,则可以按每条数据库指令的获取时刻依次执行各数据库指令。
采用上述方案后,能实时监听待处理业务,并在监听到待处理业务请求数据库时,获取待处理业务请求数据库时对应的数据库指令和对应的存储空间,并将该数据库指令存储至对应的存储空间中,再判断待处理业务是否处理完成,得到判断结果,若判断结果为否,则继续监听该待处理业务,并在监听到待处理业务请求数据库时,获取新的数据库指令,并将该新的数据库指令存储至存储空间中,若判断结果为是,则批量执行存储空间中的至少一数据库指令,进而实现该待处理业务,通过在提交操作数据库指令时,先将数据库指令存储在存储空间中,待业务处理完成之后,才批量执行存储空间中的数据库指令的方式,实现了一项业务对应的数据库指令同时提交的事务处理方式,减少了不同服务之间的阻塞,保证了业务的正常实现。
基于图2的方法,本说明书实施例还提供了该方法的一些具体实施方案,下面进行说明。
此外,在另一实施例中,所述方法还可以包括:
若接收到第二服务发送的校验失败提示,则释放存储空间,并生成待处理业务执行失败提示。
在本实施例中,在第二服务校验过程中,还可能存在校验失败的情况,具体可以为校验的存储空间不存在,或者为非幂等业务等。若校验失败,则可以发送校验失败提示至服务器,服务器根据该校验失败提示释放存储空间,并生成待处理业务执行失败提示。
此外,在另一实施例中,所述方法还可以包括:
若存储空间中的数据库指令均执行成功,则生成执行成功提示。
若存储空间中任一数据库指令执行失败,则回滚存储空间中的数据库指令。
在本实施例中,为了提高用户体验,可以在存储空间中的数据库指令均执行成功之后,生成执行成功提示,以提醒用户所有指令均执行成功了,即待处理业务成功实现了。
此外,若存储空间中有任一数据库指令执行失败,为了保证各参与者数据(不同的服务可以代表不同的参与者)的一致性,可以回滚存储空间中的所有数据库指令,即均不执行存储空间中的所有数据库指令,重新获取一次待处理业务中涉及到的数据库指令,避免了各参与者数据不一致的问题,保证了业务的正常实现。
图3为本发明另一实施例提供的分布式事务处理方法的流程示意图,如图3所示,在该实施例中,可以先启动一个服务器中的微服务作为仓储服务。然后启动多个微服务(例如服务A和服务B)。根据业务流程,在第一个微服务执行数据库前,先向仓储服务获取一个存储空间,存储空间需要保证全局唯一性,然后调用仓储服务执行数据库指令时,需要将存储空间的存储空间标识发送至仓储服务。仓储服务在接收到有存储空间的操作时,不会执行数据库指令,而是先将数据库指令存储在存储空间对应的队列中。若第一个微服务需要其他微服务执行数据库操作,可以远程来调用其他服务,其他服务收到命令之后,可以调用仓储服务执行操作,并通过存储空间标识来指定存储数据库指令的存储空间。此外,其他服务还可以进行业务校验,若校验失败后,可随时取消存储空间,避免了资源的浪费。且业务流程结束,可以向仓储服务提交该存储空间,提交完成之后,才会执行此存储空间队列中的所有数据库指令,保证了数据库指令的一致性和完整性,同时也减少了不同服务之间的阻塞,跨服务控制数据库事务的提交与回滚,减少性能消耗的同时,增加了灵活性。
基于同样的思路,本说明书实施例还提供了上述方法对应的装置,图4为本发明实施例提供的分布式事务处理装置的结构示意图,如图4所示,可以包括:
获取模块401,用于实时监听待处理业务,并在监听到所述待处理业务请求数据库时,获取所述待处理业务请求数据库时对应的数据库指令以及预设的存储空间。
在本实施例中,所述待处理业务包括一个第一服务和至少一个第二服务,
则所述获取模块401,还用于:
在监听到所述待处理业务中的第一服务请求数据库时,获取所述待处理业务中的第一服务请求数据库时对应的第一数据库指令以及预设的与所述待处理业务对应的存储空间。
处理模块402,用于将数据库指令存储至所述存储空间。
在本实施例中,所述处理模块402,还用于:
将所述第一数据库指令存储至所述存储空间。
所述存储空间包含存储空间标识,所述处理模块402,还用于:
若监听到所述第一服务调用任一第二服务时,将所述存储空间标识发送至所述第二服务,以使所述第二服务根据所述存储空间标识进行校验。
若接收到所述第二服务发送的校验成功提示,则继续监听所述第一服务对应的第一数据库指令以及所述第二服务对应的第二数据库指令。
将监听到的各第一数据库指令以及各第二数据库指令存储至所述存储空间,并在所述待处理业务处理完成时,批量执行所述存储空间中的各第一数据库指令以及各第二数据库指令。
所述处理模块402,还用于判断所述待处理业务是否处理完成,得到判断结果。
所述处理模块402,还用于若所述判断结果为否,则继续监听所述待处理业务,并在监听到所述待处理业务请求数据库时,获取新的数据库指令,并将所述新的数据库指令存储至所述存储空间中。
所述处理模块402,还用于若所述判断结果为是,则批量执行所述存储空间中的至少一数据库指令,以实现所述待处理业务。
此外,在另一实施例中,所述处理模块402,还用于:
若接收到所述第二服务发送的校验失败提示,则释放所述存储空间,并生成待处理业务执行失败提示。
此外,在另一实施例中,所述处理模块402,还用于:
若所述存储空间中的数据库指令均执行成功,则生成执行成功提示。
若所述存储空间中任一数据库指令执行失败,则回滚存储空间中的数据库指令。
本发明实施例提供的装置,可以实现上述如图2所示的实施例的方法,其实现原理和技术效果类似,此处不再赘述。
图5为本发明实施例提供的电子设备的硬件结构示意图,如图5所示,本实施例提供的设备500包括:至少一个处理器501和存储器502。其中,处理器501、存储器502通过总线503连接。
在具体实现过程中,至少一个处理器501执行所述存储器502存储的计算机执行指令,使得至少一个处理器501执行上述方法实施例中的方法。
处理器501的具体实现过程可参见上述方法实施例,其实现原理和技术效果类似,本实施例此处不再赘述。
在上述的图5所示的实施例中,应理解,处理器可以是中央处理单元(英文:Central Processing Unit,简称:CPU),还可以是其他通用处理器、数字信号处理器(英文:Digital Signal Processor,简称:DSP)、专用集成电路(英文:Application SpecificIntegrated Circuit,简称:ASIC)等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合发明所公开的方法的步骤可以直接体现为硬件处理器执行完成,或者用处理器中的硬件及软件模块组合执行完成。
存储器可能包含高速RAM存储器,也可能还包括非易失性存储NVM,例如至少一个磁盘存储器。
总线可以是工业标准体系结构(Industry Standard Architecture,ISA)总线、外部设备互连(Peripheral Component Interconnect,PCI)总线或扩展工业标准体系结构(Extended Industry Standard Architecture,EISA)总线等。总线可以分为地址总线、数据总线、控制总线等。为便于表示,本申请附图中的总线并不限定仅有一根总线或一种类型的总线。
本发明实施例还提供一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机执行指令,当处理器执行所述计算机执行指令时,实现上述方法实施例的分布式事务处理方法。
本发明实施例还提供一种计算机程序产品,包括计算机程序,所述计算机程序被处理器执行时,实现如上所述的分布式事务处理方法。
上述的计算机可读存储介质,上述可读存储介质可以是由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器(SRAM),电可擦除可编程只读存储器(EEPROM),可擦除可编程只读存储器(EPROM),可编程只读存储器(PROM),只读存储器(ROM),磁存储器,快闪存储器,磁盘或光盘。可读存储介质可以是通用或专用计算机能够存取的任何可用介质。
一种示例性的可读存储介质耦合至处理器,从而使处理器能够从该可读存储介质读取信息,且可向该可读存储介质写入信息。当然,可读存储介质也可以是处理器的组成部分。处理器和可读存储介质可以位于专用集成电路(Application Specific IntegratedCircuits,简称:ASIC)中。当然,处理器和可读存储介质也可以作为分立组件存在于设备中。
本领域普通技术人员可以理解:实现上述各方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成。前述的程序可以存储于一计算机可读取存储介质中。该程序在执行时,执行包括上述各方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。
Claims (10)
1.一种分布式事务处理方法,其特征在于,包括:
实时监听待处理业务,并在监听到所述待处理业务请求数据库时,获取所述待处理业务请求数据库时对应的数据库指令以及预设的存储空间;
将所述数据库指令存储至所述存储空间;
判断所述待处理业务是否处理完成,得到判断结果;
若所述判断结果为否,则继续监听所述待处理业务,并在监听到所述待处理业务请求数据库时,获取新的数据库指令,并将所述新的数据库指令存储至所述存储空间中;
若所述判断结果为是,则批量执行所述存储空间中的至少一数据库指令,以实现所述待处理业务。
2.根据权利要求1所述的方法,其特征在于,所述待处理业务包括一个第一服务和至少一个第二服务,
则所述在监听到所述待处理业务请求数据库时,获取所述待处理业务请求数据库时对应的数据库指令以及预设的存储空间,包括:
在监听到所述待处理业务中的第一服务请求数据库时,获取所述待处理业务中的第一服务请求数据库时对应的第一数据库指令以及预设的与所述待处理业务对应的存储空间;
所述将所述数据库指令存储至所述存储空间,包括:
将所述第一数据库指令存储至所述存储空间。
3.根据权利要求2所述的方法,其特征在于,所述存储空间包含存储空间标识,在所述将所述第一数据库指令存储至所述存储空间之后,还包括:
若监听到所述第一服务调用任一第二服务时,将所述存储空间标识发送至所述第二服务,以使所述第二服务根据所述存储空间标识进行校验;
若接收到所述第二服务发送的校验成功提示,则继续监听所述第一服务对应的第一数据库指令以及所述第二服务对应的第二数据库指令;
将监听到的各第一数据库指令以及各第二数据库指令存储至所述存储空间,并在所述待处理业务处理完成时,批量执行所述存储空间中的各第一数据库指令以及各第二数据库指令。
4.根据权利要求3所述的方法,其特征在于,还包括:
若接收到所述第二服务发送的校验失败提示,则释放所述存储空间,并生成待处理业务执行失败提示。
5.根据权利要求1-4任一项所述的方法,其特征在于,所述方法还包括:
若所述存储空间中的数据库指令均执行成功,则生成执行成功提示。
6.根据权利要求1-4任一项所述的方法,其特征在于,所述方法还包括:
若所述存储空间中任一数据库指令执行失败,则回滚所述存储空间中的数据库指令。
7.一种分布式事务处理装置,其特征在于,包括:
获取模块,用于实时监听待处理业务,并在监听到所述待处理业务请求数据库时,获取所述待处理业务请求数据库时对应的数据库指令以及预设的存储空间;
处理模块,用于将所述数据库指令存储至所述存储空间;
所述处理模块,还用于判断所述待处理业务是否处理完成,得到判断结果;
所述处理模块,还用于若所述判断结果为否,则继续监听所述待处理业务,并在监听到所述待处理业务请求数据库时,获取新的数据库指令,并将所述新的数据库指令存储至所述存储空间中;
所述处理模块,还用于若所述判断结果为是,则批量执行所述存储空间中的至少一数据库指令,以实现所述待处理业务。
8.一种电子设备,其特征在于,包括:至少一个处理器和存储器;
所述存储器存储计算机执行指令;
所述至少一个处理器执行所述存储器存储的计算机执行指令,使得所述至少一个处理器执行如权利要求1至6任一项所述的分布式事务处理方法。
9.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有计算机执行指令,当处理器执行所述计算机执行指令时,实现如权利要求1至6任一项所述的分布式事务处理方法。
10.一种计算机程序产品,包括计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至6任一项所述的分布式事务处理方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110574442.7A CN115390998A (zh) | 2021-05-25 | 2021-05-25 | 分布式事务处理方法、装置及电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110574442.7A CN115390998A (zh) | 2021-05-25 | 2021-05-25 | 分布式事务处理方法、装置及电子设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115390998A true CN115390998A (zh) | 2022-11-25 |
Family
ID=84114611
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110574442.7A Pending CN115390998A (zh) | 2021-05-25 | 2021-05-25 | 分布式事务处理方法、装置及电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115390998A (zh) |
-
2021
- 2021-05-25 CN CN202110574442.7A patent/CN115390998A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106844014B (zh) | 分布式事务防悬挂的实现方法和装置 | |
CN110888893A (zh) | 一种基于微服务电商系统的订单处理方法 | |
US6742135B1 (en) | Fault-tolerant match-and-set locking mechanism for multiprocessor systems | |
CN110163572B (zh) | 一种链码函数处理方法、装置及设备 | |
CN112053149A (zh) | 一种防止重复支付的方法、装置、电子设备和可读存储介质 | |
CN109684048B (zh) | 事务提交系统中处理事务的方法及装置 | |
CN113377875A (zh) | 跨链数据处理方法、装置、电子设备及可读存储介质 | |
CN111880908A (zh) | 分布式事务的处理方法、装置及存储介质 | |
CN112015563A (zh) | 消息队列切换方法、装置、电子设备及存储介质 | |
CN115390998A (zh) | 分布式事务处理方法、装置及电子设备 | |
CN111143040A (zh) | 事务处理方法、装置、系统及存储介质 | |
CN115934272A (zh) | 一种联机批量任务处理方法及装置 | |
CN112598520B (zh) | 交易管理的方法、装置、电子设备以及存储介质 | |
CN115208834A (zh) | 一种基于数据库存储过程设计的服务流量限制方法 | |
CN113177052A (zh) | 一种分布式系统业务数据一致性处理方法、装置 | |
US20210240698A1 (en) | Asynchronous remote calls with undo data structures | |
CN111061576B (zh) | 一种实体对象的创建方法及系统 | |
CN110222016B (zh) | 一种文件处理方法及装置 | |
CN114356888A (zh) | 事务处理方法及装置、存储介质及电子设备 | |
CN112541041A (zh) | 一种数据处理方法、装置、服务器及存储介质 | |
CN112162988A (zh) | 一种分布式事务的处理方法、装置和电子设备 | |
CN111722946A (zh) | 分布式事务处理方法、装置、计算机设备及可读存储介质 | |
CN110008010A (zh) | 系统调用方法、装置、设备及可读存储介质 | |
CN113992684B (zh) | 发送数据的方法、装置、处理节点、存储介质及系统 | |
CN115756768B (zh) | 基于saga的分布式事务处理方法、装置、设备及介质 |
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 |