CN116938927A - 分布式事务处理方法、装置、计算机设备及存储介质 - Google Patents
分布式事务处理方法、装置、计算机设备及存储介质 Download PDFInfo
- Publication number
- CN116938927A CN116938927A CN202210369977.5A CN202210369977A CN116938927A CN 116938927 A CN116938927 A CN 116938927A CN 202210369977 A CN202210369977 A CN 202210369977A CN 116938927 A CN116938927 A CN 116938927A
- Authority
- CN
- China
- Prior art keywords
- transaction
- service node
- target
- request
- 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.)
- Pending
Links
- 238000003672 processing method Methods 0.000 title claims abstract description 21
- 238000012545 processing Methods 0.000 claims abstract description 286
- 238000000034 method Methods 0.000 claims abstract description 76
- 238000004590 computer program Methods 0.000 claims description 10
- 230000005540 biological transmission Effects 0.000 claims description 3
- 238000013461 design Methods 0.000 description 7
- 230000006870 function Effects 0.000 description 7
- 238000010586 diagram Methods 0.000 description 6
- 238000001514 detection method Methods 0.000 description 5
- 238000004891 communication Methods 0.000 description 4
- 239000004973 liquid crystal related substance Substances 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000005236 sound signal Effects 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 230000002950 deficient Effects 0.000 description 1
- 238000007599 discharging Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000001815 facial effect Effects 0.000 description 1
- 239000003999 initiator Substances 0.000 description 1
- 230000000977 initiatory effect Effects 0.000 description 1
- 238000012905 input function Methods 0.000 description 1
- 230000014759 maintenance of location Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 230000035755 proliferation Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer And Data Communications (AREA)
Abstract
本申请实施例公开了一种分布式事务处理方法、装置、计算机设备及存储介质。方法包括:所述主业务节点向所述从业务节点中的目标从业务节点发送事务处理请求,所述事务处理请求包括待处理事务的有效处理时长;所述目标从业务节点对应的目标网关节点捕获所述事务处理请求,向所述目标从业务节点发送所述事务处理请求;所述目标从业务节点根据所述事务处理请求处理所述待处理事务,并向所述目标网关节点反馈事务处理状态;所述目标网关节点基于所述事务处理状态以及所述有效处理时长,确定是否再次向所述从业务节点发送所述事务处理请求,以使所述目标从业务节点成功处理所述待处理事务。进一步提升了从业务节点的运行效率和性能。
Description
技术领域
本申请涉及计算机技术领域,具体涉及一种分布式事务处理方法、装置、计算机设备及存储介质。
背景技术
随着业务***的日趋复杂以及第三方云端公共服务的繁荣,目前的服务端***大量的集成云端服务和去中心化的设计已经成为趋势(比如:微服务)。这就意味着要完成一项业务逻辑,将会有多个小的业务单元同时参与。可以采用基于TCC的分布式事务方案来完成一项业务逻辑。在基于TCC分布式事务的***架构中,为了保证业务逻辑能穿越多个主业务节点(发起事务的节点)和多个从业务节点(处理事务过程中的其中一个节点)顺利完成,需要主业务节点和各个从业务节点都成功处理相应的事务,然而在现有技术中,通常对于从业务节点的考虑和设计比较匮乏,从业务节点会因为无法异步处理事务导致事务处理滞留、或需要对多个事务进行分配等原因出现运行缓慢、节点中的***设计较为复杂的情况,导致从业务节点的性能较差。
发明内容
本申请实施例提供一种分布式事务处理方法、装置、计算机设备及存储介质,可以提升TCC分布式事务架构***中从业务节点的性能。
本申请实施例提供一种分布式事务处理方法,应用于TCC分布式事务架构***,所述TCC分布式事务架构***包括至少一个主业务节点、至少一个从业务节点,以及各所述从业务节点对应的网关节点,包括:
所述主业务节点向所述从业务节点中的目标从业务节点发送事务处理请求,所述事务处理请求包括待处理事务的有效处理时长;
所述目标从业务节点对应的目标网关节点捕获所述事务处理请求,向所述目标从业务节点发送所述事务处理请求;
所述目标从业务节点根据所述事务处理请求处理所述待处理事务,并向所述目标网关节点反馈事务处理状态;
所述目标网关节点基于所述事务处理状态以及所述有效处理时长,确定是否再次向所述目标从业务节点发送所述待处理事务的事务处理请求,以使所述目标从业务节点成功处理所述待处理事务。
相应的,本申请实施例还提供一种分布式事务处理装置,应用于TCC分布式事务架构***,所述TCC分布式事务架构***包括至少一个主业务节点、至少一个从业务节点,以及各所述从业务节点对应的网关节点,包括:
请求发送单元,用于使所述主业务节点向所述从业务节点中的目标从业务节点发送事务处理请求,所述事务处理请求包括待处理事务的有效处理时长;
请求捕获单元,用于使所述目标从业务节点对应的目标网关节点捕获所述事务处理请求,向所述目标从业务节点发送所述事务处理请求;
事务处理单元,用于使所述目标从业务节点根据所述事务处理请求处理所述待处理事务,并向所述目标网关节点反馈事务处理状态;
确定单元,用于使所述目标网关节点基于所述事务处理状态以及所述有效处理时长,确定是否再次向所述目标从业务节点发送所述待处理事务的事务处理请求,以使所述目标从业务节点成功处理所述待处理事务。
可选的,所述事务处理请求包括针对所述主业务节点的回调地址,所述确定单元还用于:
若所述事务处理状态为成功处理状态,所述目标网关节点确定不再向所述从业务节点发送所述待处理事务的事务处理请求;
所述目标网关节点基于所述回调地址向所述主业务节点反馈所述目标从业务节点处理成功所述待处理事务的信息。
可选的,所述确定单元还用于:
若所述事务处理状态为失败处理状态,所述目标网关节点基于当前时刻确定是否超过所述事务处理请求的所述有效处理时长;
若是,则所述目标网关节点确定不再向所述从业务节点发送所述待处理事务的事务处理请求;
若否,则所述目标网关节点确定基于所述有效处理时长再次向所述目标从业务节点发送所述待处理事务的事务处理请求,以使所述目标从业务节点成功处理所述待处理事务。
可选的,所述确定单元还用于:
所述目标网关节点基于所述有效处理时长设置所述事务处理请求的处理要求信息;
所述目标网关节点将所述处理要求信息,以及所述事务处理请求存入所述目标网关节点对应的缓存区;
所述目标网关节点基于所述处理要求信息和所述有效处理时长向所述目标从业务节点发送所述待处理事务的事务处理请求,直至所述目标从业务节点成功处理所述待处理事务。
可选的,所述处理要求信息包括所述目标网关节点向所述目标从业务节点发送所述事务处理请求的目标次数,以及每次发送所述事务处理请求的间隔时长;
所述确定单元还用于:
所述目标网关节点基于所述间隔时长依次向所述目标从业务节点发送所述待处理事务的事务处理请求;
若所述目标网关节点向所述目标从业务节点发送所述待处理事务的事务处理请求的次数达到所述目标次数,或所述目标从业务节点成功处理所述待处理事务,停止发送所述待处理事务的事务处理请求。
可选的,所述事务处理请求包括针对所述主业务节点的回调地址,所述确定单元还用于:
所述目标网关节点基于所述回调地址向所述主业务节点反馈所述目标从业务节点处理失败所述待处理事务的信息。
可选的,所述请求捕获单元还用于:
基于所述事务处理请求派生副本处理请求,所述副本处理请求与所述事务处理请求相同;
所述确定单元还用于:
若否,则所述目标网关节点基于所述副本处理请求生成再次向所述目标从业务节点发送的新事物处理请求;
基于所述有效处理时长再次向所述目标从业务节点发送所述新事务处理请求。
同样的,本申请实施例还提供一种计算机设备,包括:
存储器,用于存储计算机程序;
处理器,用于在执行所述分布式事务处理方法任一项的步骤。
此外,本申请实施例还提供一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现所述分布式事务处理方法任一项的步骤。
本申请实施例提供一种分布式事务处理方法、装置、计算机设备及存储介质,在TCC分布式事务架构***中为每个从业务节点设置对应的网关节点,当主业务节点向从业务节点发送事务处理请求时,从业务节点对应的网关节点会先捕获事务处理请求,再向从业务节点发送事务处理请求,并且当从业务节点在一次处理失败后,网关节点会基于事务处理请求的有效处理时长,多次向从业务节点发送事务处理请求,保证从业务节点只需要处理网关节点发送的事务处理请求,不需要为了成功处理事务处理请求而做出其他分配多个事务等其他操作,使得从业务节点的***设计较为简单,进一步提升了从业务节点的运行效率和性能。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要兑现的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本申请实施例提供的TCC分布式事务架构***的***示意图;
图2是本申请实施例提供的分布式事务处理方法的流程示意图;
图3是本申请实施例提供的分布式事务处理方法的另一流程图;
图4是本申请实施例提供的分布式事务处理装置的结构示意图;
图5是本申请实施例提供的计算机设备的结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述。显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本申请实施例提供一种分布式事务处理方法、装置、计算机设备及存储介质。具体地,本申请实施例的分布式事务处理方法可以由计算机设备执行,其中,该计算机设备可以为终端或者服务器等设备。该终端可以为智能手机、平板电脑、笔记本电脑、触控屏幕、游戏机、个人计算机(Personal Computer,PC)、个人数字助理(Personal Digital Assistant,PDA)等终端设备,服务器可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式***,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、内容分发网络服务、以及大数据和人工智能平台等基础云计算服务的云服务器。
请参阅图1,图1为本申请实施例提供的TCC分布式事务架构***的***示意图。该***可以包括至少一个主业务节点101、目标从业务节点102、其他从业务节点104、从业务节点105,以及目标从业务节点102对应的目标网关节点103。主业务节点101、目标从业务节点102以及目标网关节点103之间通过网络互相连接,例如,网络可以为无线网络或者有线网络,无线网络可以为无线局域网(WLAN)、局域网(LAN)、蜂窝网络、2G网络、3G网络、4G网络、5G网络等,所述主业务节点101向所述目标从业务节点102发送事务处理请求,所述事务处理请求包括待处理事务的有效处理时长;所述目标从业务节点102对应的目标网关节点103捕获所述事务处理请求,向所述目标从业务节点102发送所述事务处理请求;所述目标从业务节点102根据所述事务处理请求处理所述待处理事务,并向所述目标网关节点103反馈事务处理状态;所述目标网关节点103基于所述事务处理状态以及所述有效处理时长,确定是否再次向所述从业务节点102发送所述待处理事务的事务处理请求,以使所述目标从业务节点102成功处理所述待处理事务。
以下分别进行详细说明。需说明的是,以下实施例的描述顺序不作为对实施例优选顺序的限定。
本实施例将从分布式事务处理装置的角度进行描述,该分布式事务处理装置具体可以集成在终端设备中,该终端设备可以包括智能手机、笔记本电脑、平板电脑以及个人计算机等设备。
本申请实施例提供的一种分布式事务处理方法,该方法可以由终端的处理器执行,该方法应用于TCC分布式事务架构***,所述TCC分布式事务架构***包括至少一个主业务节点、至少一个从业务节点,以及各所述从业务节点对应的网关节点,如图2所示,该分布式事务处理方法的具体流程主要包括步骤201至步骤204,详细说明如下:
步骤201、所述主业务节点向所述从业务节点中的目标从业务节点发送事务处理请求,所述事务处理请求包括待处理事务的有效处理时长。
在本申请实施例中,事务是完成一个业务单元的操作序列,它包含了一系列的操作、同时这些操作必须是原子操作,即这些操作不可以被分割:要么全部成功执行、要么全部不执行。如:在电商***中下一个订单、除了生成订单之外、还有一系列的其它操作(例如,商品的库存、用户的购物车、用户的购物记录、商品的销售数据等一系列操作)。TCC是一种实现分布式事务的架构思想,包括主业务节点,主业务节点是TCC架构中事务的发起方,例如主业务节点可以是电商***中生成订单的操作,从业务节点是TCC架构中完成整个事务过程中的一个环节,例如从业务节点可以是处理商品库存、或更改商品销售数据等操作的节点。网关节点是每个从业务节点上的前端节点,用于处理从业务节点中除事务处理操作之外的操作,例如结果回调、事务处理请求处理失败后,在有效处理时长内再次处理的设置等。
在本申请实施例中,事务处理请求是当主业务节点完成一个事务操作时,主业务节点向从业务节点发送的使从业务节点根据主业务节点完成的事务操作完成下一个事务操作的请求。事务处理请求中可以包括待处理事务的事务数据、待处理事务的有效处理时长,以及主业务节点的回调地址。其中,事务数据是从业务节点需要完成的事务操作所需的数据,有效处理时长是从业务节点对事务处理请求执行有效处理的时长,即超过有效时长后从业务节点对事务处理请求的处理操作无效,回调地址是从业务节点向主业务节点反馈执行结果信息的地址。例如,当主业务节点生成在第三方代理平台购买机票的订单后,主业务节点向第三方代理平台发送机票预留请求,即第三方代理平台需要根据机票预留请求使得机票出售平台预留机票,当机票预留成功之后,第三方代理平台向主业务节点反馈预留成功信息,使得主业务节点能够确认购买机票。
步骤202、所述目标从业务节点对应的目标网关节点捕获所述事务处理请求,向所述目标从业务节点发送所述事务处理请求。
在本申请的一种实施方式中,目标网关节点为了帮助目标从业务节点进行事务处理请求的处理结果反馈操作、以及事务处理请求处理失败后,在有效处理时长内再次处理等操作,目标网关节点需要捕获对应的目标从业务节点的事务处理请求。
此外,若目标从业务节点处理事务处理请求失败后,目标网关节点为了再次向目标从业务节点发送相同的事务处理请求,目标网关节点需要根据主业务节点发送的事务处理请求生成一个内容相同的副本处理请求,并将生成的副本处理请求保存在目标网关节点的redis缓存中。即上述步骤202中“所述目标从业务节点对应的目标网关节点捕获所述事务处理请求”之后还可以包括:基于所述事务处理请求派生副本处理请求,所述副本处理请求与所述事务处理请求相同。
步骤203、所述目标从业务节点根据所述事务处理请求处理所述待处理事务,并向所述目标网关节点反馈事务处理状态。
在本申请实施例中,当目标从业务节点根据事务处理请求处理待处理事务后,需要向目标网关节点反馈事务处理状态,以使目标网关节点确定是再次发送事务处理请求还是向主业务节点反馈事务处理结果。其中,事务处理状态包括成功处理状态和失败处理状态。目标从业务节点向目标网关节点反馈事务处理状态的形式不受限制,例如,目标从业务节点可以直接以文字的形式向目标网关节点反馈,目标从业务节点也可以向目标网关节点反馈标识不同的状态码。
步骤204、所述目标网关节点基于所述事务处理状态以及所述有效处理时长,确定是否再次向所述目标从业务节点发送所述待处理事务的事务处理请求,以使所述目标从业务节点成功处理所述待处理事务。
在本申请实施例中,当事务处理状态为成功处理状态时,表明目标从业务节点不再需要处理待处理事务,即目标网关节点不再需要向目标从业务节点发送事务处理请求,可以生成一个会话,通过生成的会话向主业务节点反馈事务处理结果,以使主业务节点能够进行下一步的处理。此时,事务处理请求包括针对所述主业务节点的回调地址,上述步骤204中“所述目标网关节点基于所述事务处理状态以及所述有效处理时长,确定是否再次向所述目标从业务节点发送所述待处理事务的事务处理请求,以使所述目标从业务节点成功处理所述待处理事务”可以是:
若所述事务处理状态为成功处理状态,所述目标网关节点确定不再向所述从业务节点发送所述事务处理请求;
所述目标网关节点基于所述回调地址向所述主业务节点反馈所述目标从业务节点处理成功所述待处理事务的信息。
在本申请实施例中,当事务处理状态为失败处理状态时,由于一个业务逻辑中各个节点的事务处理都必须保持一致,为了使得目标从业务节点与其他业务节点都保持成功处理状态,需要目标从业务节点在有效处理时长内再次处理待处理事务,即目标网关节点需要在有效处理时长内再次向目标从业务节点发送事务处理请求,上述步骤204中“所述目标网关节点基于所述事务处理状态以及所述有效处理时长,确定是否再次向所述目标从业务节点发送所述待处理事务的事务处理请求,以使所述目标从业务节点成功处理所述待处理事务”可以是:
若所述事务处理状态为失败处理状态,所述目标网关节点基于当前时刻确定是否超过所述事务处理请求的所述有效处理时长;
若是,则所述目标网关节点确定不再向所述从业务节点发送所述事务处理请求;
若否,则所述目标网关节点确定基于所述有效处理时长再次向所述目标从业务节点发送所述待处理事务的事务处理请求,以使所述目标从业务节点成功处理所述待处理事务。
在本申请的一种实施方式中,由于目标网关节点中可能会具有多个待处理事务的事务处理请求,为了使得各个事务处理请求都有机会被目标从业务节点处理,所以目标网关节点可以设置每个事务处理请求的处理要求信息,即目标网关节点根据每个请求的处理要求信息向目标从业务节点发送,避免多个处理要求信息滞留。上述步骤“所述目标网关节点确定基于所述有效处理时长再次向所述目标从业务节点发送所述待处理事务的事务处理请求”可以是:
所述目标网关节点基于所述有效处理时长设置所述事务处理请求的处理要求信息;
所述目标网关节点将所述处理要求信息,以及所述事务处理请求存入所述目标网关节点对应的缓存区;
所述目标网关节点基于所述处理要求信息和所述有效处理时长向所述目标从业务节点发送所述事务处理请求,直至所述目标从业务节点成功处理所述待处理事务。
在本申请的一种实施方式中,所述处理要求信息包括所述目标网关节点向所述目标从业务节点发送所述事务处理请求的目标次数,以及每次发送所述事务处理请求的间隔时长;上述步骤“所述目标网关节点基于所述处理要求信息和所述有效处理时长向所述目标从业务节点发送所述事务处理请求,直至所述目标从业务节点成功处理所述待处理事务”可以是:
所述目标网关节点基于所述间隔时长依次向所述目标从业务节点发送所述事务处理请求;
若所述目标网关节点向所述目标从业务节点发送所述事务处理请求的次数达到所述目标次数,或所述目标从业务节点成功处理所述待处理事务,停止发送所述事务处理请求。
例如,一个事务处理请求的有效处理时长是30秒,设置目标网关节点还可以向所述目标从业务节点发送所述事务处理请求的目标次数是3次,每次之间的时间间隔是10秒,即目标网关节点按照处理要求信息每隔10秒向目标从业务节点发送事务处理请求,直至发至3次。此外,若在其中任意一次中,目标从业务节点成功处理待处理事务,则停止后续再次发送。
在本申请实施例中,处理要求信息的设置不受限制,还可以是只设置每次发送的时间间隔,例如,一个事务处理请求的有效处理时长是30秒,设置目标网关节点第一次间隔5秒向目标从业务节点发送,第二次间隔8秒向目标从业务节点发送,第三次间隔10秒向目标从业务节点发送,第四次间隔8秒向目标从业务节点发送。
在本申请的一种实施方式中,所述事务处理请求包括针对所述主业务节点的回调地址,上述步骤中“所述若是,则所述目标网关节点确定不再向所述从业务节点发送所述事务处理请求”之后,还可以是:
所述目标网关节点基于所述回调地址向所述主业务节点反馈所述目标从业务节点处理失败所述待处理事务的信息。
在本申请实施例中,当一个事务处理请求超时被丢弃后,目标网关节点可以基于所述回调地址向主业务节点发送失败处理信息。此外,目标网关节点也可以不向主业务节点发送失败处理信息,主业务节点在一定时间内没有接受到成功处理信息后,也可以自动判定该待处理事务处理失败。
在本申请的一种实施方式中,当目标网关节点获取了主业务节点发送的事务处请求,且目标网关节点派生出一个与事务处理请求相同的副本处理请求后,目标网关节点可以根据副本处理请求再次生成向从业务节点发送的新事务处理请求。此时,下述步骤“若否,则所述目标网关节点确定基于所述有效处理时长再次向所述目标从业务节点发送所述待处理事务的事务处理请求”可以是若否,则所述目标网关节点基于所述副本处理请求生成再次向所述目标从业务节点发送的新事物处理请求;基于所述有效处理时长再次向所述目标从业务节点发送所述新事务处理请求。
在本申请实施例中,当目标从业务节点成功处理了事务处理请求,则不再使用副本处理请求。目标网关节点需要定时清理生成的副本处理请求。
在本申请实施例中,目标网关节点也可以不基于副本处理请求生成新事务处理请求,直接将原先的事务处理请求再次发送给目标从业务节点。
上述所有的技术方案,可以采用任意结合形成本申请的可选实施例,在此不再一一赘述。
本申请实施例提供一种分布式事务处理方法,在TCC分布式事务架构***中为每个从业务节点设置对应的网关节点,当主业务节点向从业务节点发送事务处理请求时,从业务节点对应的网关节点会先捕获事务处理请求,再向从业务节点发送事务处理请求,并且当从业务节点在一次处理失败后,网关节点会基于事务处理请求的有效处理时长,多次向从业务节点发送事务处理请求,保证从业务节点只需要处理网关节点发送的事务处理请求,不需要为了成功处理事务处理请求而做出其他分配多个事务等其他操作,使得从业务节点的***设计较为简单,进一步提升了从业务节点的运行效率和性能。
在本申请实施例中,请一并参阅图3所示的分布式事务处理方法的另一流程图中,主业务节点X向网关节点G发送事务处理请求,网关节点G根据请求派生出请求1,将请求1存入网关节点G的redis缓存中,然后网关节点G向从业务节点A发送请求,从业务节点A处理请求,若从业务节点A处理成功,则网关节点G向主业务节点X的回调地址透传从业务节点A的返回值,若从业务节点A处理失败,则网关节点G重新设置请求1的处理时间,网关节点G确定当前时间点满足设置的处理时间需要执行的所有的请求1的请求列表,确定列表中处于有效期内的请求1,网关节点G并发批量处理请求1,即将处于有效期内的请求1再次发送给从业务节点A,网关节点G确定列表中超时的请求1,并从redis缓存中丢弃。
为便于更好的实施本申请实施例的分布式事务处理方法,本申请实施例还提供一种分布式事务处理装置。请参阅图4,图4为本申请实施例提供的分布式事务处理装置的结构示意图。该分布式事务处理装置应用于TCC分布式事务架构***,所述TCC分布式事务架构***包括至少一个主业务节点、至少一个从业务节点,以及各所述从业务节点对应的网关节点,该分布式事务处理装置可以包括请求发送单元401、请求捕获单元402、事务处理单元403和确定单元404。
其中,请求发送单元401,用于使所述主业务节点向所述从业务节点中的目标从业务节点发送事务处理请求,所述事务处理请求包括待处理事务的有效处理时长;
请求捕获单元402,用于使所述目标从业务节点对应的目标网关节点捕获所述事务处理请求,向所述目标从业务节点发送所述事务处理请求;
事务处理单元403,用于使所述目标从业务节点根据所述事务处理请求处理所述待处理事务,并向所述目标网关节点反馈事务处理状态;
确定单元404,用于使所述目标网关节点基于所述事务处理状态以及所述有效处理时长,确定是否再次向所述目标从业务节点发送所述待处理事务的事务处理请求,以使所述目标从业务节点成功处理所述待处理事务。
可选的,所述事务处理请求包括针对所述主业务节点的回调地址,所述确定单元404还用于:
若所述事务处理状态为成功处理状态,所述目标网关节点确定不再向所述从业务节点发送所述事务处理请求;
所述目标网关节点基于所述回调地址向所述主业务节点反馈所述目标从业务节点处理成功所述待处理事务的信息。
可选的,所述事务处理请求包括针对所述主业务节点的回调地址,所述确定单元404还用于:
若所述事务处理状态为失败处理状态,所述目标网关节点基于当前时刻确定是否超过所述事务处理请求的所述有效处理时长;
若是,则所述目标网关节点确定不再向所述从业务节点发送所述事务处理请求;
若否,则所述目标网关节点确定基于所述有效处理时长再次向所述目标从业务节点发送所述待处理事务的事务处理请求,以使所述目标从业务节点成功处理所述待处理事务。
可选的,所述确定单元404还用于:
所述目标网关节点基于所述有效处理时长设置所述事务处理请求的处理要求信息;
所述目标网关节点将所述处理要求信息,以及所述事务处理请求存入所述目标网关节点对应的缓存区;
所述目标网关节点基于所述处理要求信息和所述有效处理时长向所述目标从业务节点发送所述事务处理请求,直至所述目标从业务节点成功处理所述待处理事务。
可选的,所述处理要求信息包括所述目标网关节点向所述目标从业务节点发送所述事务处理请求的目标次数,以及每次发送所述事务处理请求的间隔时长;
所述确定单元404还用于:
所述目标网关节点基于所述间隔时长依次向所述目标从业务节点发送所述事务处理请求;
若所述目标网关节点向所述目标从业务节点发送所述事务处理请求的次数达到所述目标次数,或所述目标从业务节点成功处理所述待处理事务,停止发送所述事务处理请求。
可选的,所述事务处理请求包括针对所述主业务节点的回调地址,所述确定单元404还用于:
所述目标网关节点基于所述回调地址向所述主业务节点反馈所述目标从业务节点处理失败所述待处理事务的信息。
可选的,所述请求捕获单元402还用于:
基于所述事务处理请求派生副本处理请求,所述副本处理请求与所述事务处理请求相同;
所述确定单元404还用于:
若否,则所述目标网关节点基于所述副本处理请求生成再次向所述目标从业务节点发送的新事物处理请求;
基于所述有效处理时长再次向所述目标从业务节点发送所述新事务处理请求。
上述所有的技术方案,可以采用任意结合形成本申请的可选实施例,在此不再一一赘述。
本申请实施例提供的分布式事务处理装置,在TCC分布式事务架构***中为每个从业务节点设置对应的网关节点,当主业务节点向从业务节点发送事务处理请求时,从业务节点对应的网关节点会先捕获事务处理请求,再向从业务节点发送事务处理请求,并且当从业务节点在一次处理失败后,网关节点会基于事务处理请求的有效处理时长,多次向从业务节点发送事务处理请求,保证从业务节点只需要处理网关节点发送的事务处理请求,不需要为了成功处理事务处理请求而做出其他分配多个事务等其他操作,使得从业务节点的***设计较为简单,进一步提升了从业务节点的运行效率和性能。
相应的,本申请实施例还提供一种计算机设备,该计算机设备可以为终端,该终端可以为智能手机、平板电脑、笔记本电脑、触控屏幕、游戏机、个人计算机、个人数字助理等终端设备。如图5所示,图5为本申请实施例提供的计算机设备的结构示意图。该计算机设备500包括有一个或者一个以上处理核心的处理器501、有一个或一个以上计算机可读存储介质的存储器502及存储在存储器502上并可在处理器上运行的计算机程序。其中,处理器501与存储器502电性连接。本领域技术人员可以理解,图中示出的计算机设备结构并不构成对计算机设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
处理器501是计算机设备500的控制中心,利用各种接口和线路连接整个计算机设备500的各个部分,通过运行或加载存储在存储器502内的软件程序和/或模块,以及调用存储在存储器502内的数据,执行计算机设备500的各种功能和处理数据,从而对计算机设备500进行整体监控。
在本申请实施例中,计算机设备500中的处理器501会按照如下的步骤,将一个或一个以上的应用程序的进程对应的指令加载到存储器502中,并由处理器501来运行存储在存储器502中的应用程序,从而实现各种功能:
所述主业务节点向所述从业务节点中的目标从业务节点发送事务处理请求,所述事务处理请求包括待处理事务的有效处理时长;
所述目标从业务节点对应的目标网关节点捕获所述事务处理请求,向所述目标从业务节点发送所述事务处理请求;
所述目标从业务节点根据所述事务处理请求处理所述待处理事务,并向所述目标网关节点反馈事务处理状态;
所述目标网关节点基于所述事务处理状态以及所述有效处理时长,确定是否再次向所述目标从业务节点发送所述待处理事务的事务处理请求,以使所述目标从业务节点成功处理所述待处理事务。
以上各个操作的具体实施可参见前面的实施例,在此不再赘述。
可选的,如图5所示,计算机设备500还包括:触控显示屏503、射频电路504、音频电路505、输入单元506以及电源507。其中,处理器501分别与触控显示屏503、射频电路504、音频电路505、输入单元506以及电源507电性连接。本领域技术人员可以理解,图5中示出的计算机设备结构并不构成对计算机设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
触控显示屏503可用于显示图形用户界面以及接收用户作用于图形用户界面产生的操作指令。触控显示屏503可以包括显示面板和触控面板。其中,显示面板可用于显示由用户输入的信息或提供给用户的信息以及计算机设备的各种图形用户接口,这些图形用户接口可以由图形、文本、图标、视频和其任意组合来构成。可选的,可以采用液晶显示器(Liquid Crystal Display,LCD)、有机发光二极管(Organic Light-Emitting Diode,OLED)等形式来配置显示面板。触控面板可用于收集用户在其上或附近的触摸操作(比如用户兑现手指、触笔等任何适合的物体或附件在触控面板上或在触控面板附近的操作),并生成相应的操作指令,且操作指令执行对应程序。可选的,触控面板可包括触摸检测装置和触摸控制器两个部分。其中,触摸检测装置检测用户的触摸方位,并检测触摸操作带来的信号,将信号传送给触摸控制器;触摸控制器从触摸检测装置上接收触摸信息,并将它转换成触点坐标,再送给处理器501,并能接收处理器501发来的命令并加以执行。触控面板可覆盖显示面板,当触控面板检测到在其上或附近的触摸操作后,传送给处理器501以确定触摸事件的类型,随后处理器501根据触摸事件的类型在显示面板上提供相应的视觉输出。在本申请实施例中,可以将触控面板与显示面板集成到触控显示屏503而实现输入和输出功能。但是在某些实施例中,触控面板与触控面板可以作为两个独立的部件来实现输入和输出功能。即触控显示屏503也可以作为输入单元506的一部分实现输入功能。
射频电路504可用于收发射频信号,以通过无线通信与网络设备或其他计算机设备建立无线通讯,与网络设备或其他计算机设备之间收发信号。
音频电路505可以用于通过扬声器、传声器提供用户与计算机设备之间的音频接口。音频电路505可将接收到的音频数据转换后的电信号,传输到扬声器,由扬声器转换为声音信号输出;另一方面,传声器将收集的声音信号转换为电信号,由音频电路505接收后转换为音频数据,再将音频数据输出处理器501处理后,经射频电路504以发送给比如另一计算机设备,或者将音频数据输出至存储器502以便进一步处理。音频电路505还可能包括耳塞插孔,以提供外设耳机与计算机设备的通信。
输入单元506可用于接收输入的数字、字符信息或用户特征信息(例如指纹、虹膜、面部信息等),以及产生与用户设置以及功能控制有关的键盘、鼠标、操作杆、光学或者轨迹球信号输入。
电源507用于给计算机设备500的各个部件供电。可选的,电源507可以通过电源管理***与处理器501逻辑相连,从而通过电源管理***实现管理充电、放电、以及功耗管理等功能。电源507还可以包括一个或一个以上的直流或交流电源、再充电***、电源故障检测电路、电源转换器或者逆变器、电源状态指示器等任意组件。
尽管图5中未示出,计算机设备500还可以包括摄像头、传感器、无线保真模块、蓝牙模块等,在此不再赘述。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
由上可知,本实施例提供的计算机设备,在TCC分布式事务架构***中为每个从业务节点设置对应的网关节点,当主业务节点向从业务节点发送事务处理请求时,从业务节点对应的网关节点会先捕获事务处理请求,再向从业务节点发送事务处理请求,并且当从业务节点在一次处理失败后,网关节点会基于事务处理请求的有效处理时长,多次向从业务节点发送事务处理请求,保证从业务节点只需要处理网关节点发送的事务处理请求,不需要为了成功处理事务处理请求而做出其他分配多个事务等其他操作,使得从业务节点的***设计较为简单,进一步提升了从业务节点的运行效率和性能。
本领域普通技术人员可以理解,上述实施例的各种方法中的全部或部分步骤可以通过指令来完成,或通过指令控制相关的硬件来完成,该指令可以存储于一计算机可读存储介质中,并由处理器进行加载和执行。
为此,本申请实施例提供一种计算机可读存储介质,其中存储有多条计算机程序,该计算机程序能够被处理器进行加载,以执行本申请实施例所提供的任一种分布式事务处理方法中的步骤。例如,该计算机程序可以执行如下步骤:
所述主业务节点向所述从业务节点中的目标从业务节点发送事务处理请求,所述事务处理请求包括待处理事务的有效处理时长;
所述目标从业务节点对应的目标网关节点捕获所述事务处理请求,向所述目标从业务节点发送所述事务处理请求;
所述目标从业务节点根据所述事务处理请求处理所述待处理事务,并向所述目标网关节点反馈事务处理状态;
所述目标网关节点基于所述事务处理状态以及所述有效处理时长,确定是否再次向所述目标从业务节点发送所述待处理事务的事务处理请求,以使所述目标从业务节点成功处理所述待处理事务。
以上各个操作的具体实施可参见前面的实施例,在此不再赘述。
其中,该存储介质可以包括:只读存储器(Read Only Memory,ROM)、随机存取记忆体(Random Access Memory,RAM)、磁盘或光盘等。
由于该存储介质中所存储的计算机程序,可以执行本申请实施例所提供的任一种分布式事务处理方法中的步骤,因此,可以实现本申请实施例所提供的任一种分布式事务处理方法所能实现的有益效果,详见前面的实施例,在此不再赘述。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
以上对本申请实施例所提供的一种分布式事务处理方法、装置、计算机设备及存储介质进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的技术方案及其核心思想;本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例的技术方案的范围。
Claims (10)
1.一种分布式事务处理方法,其特征在于,应用于TCC分布式事务架构***,所述TCC分布式事务架构***包括至少一个主业务节点、至少一个从业务节点,以及各所述从业务节点对应的网关节点,所述方法包括:
所述主业务节点向所述从业务节点中的目标从业务节点发送事务处理请求,所述事务处理请求包括待处理事务的有效处理时长;
所述目标从业务节点对应的目标网关节点捕获所述事务处理请求,向所述目标从业务节点发送所述事务处理请求;
所述目标从业务节点根据所述事务处理请求处理所述待处理事务,并向所述目标网关节点反馈事务处理状态;
所述目标网关节点基于所述事务处理状态以及所述有效处理时长,确定是否再次向所述目标从业务节点发送所述待处理事务的事务处理请求,以使所述目标从业务节点成功处理所述待处理事务。
2.根据权利要求1所述的方法,其特征在于,所述事务处理请求包括针对所述主业务节点的回调地址,所述目标网关节点基于所述事务处理状态以及所述有效处理时长,确定是否再次向所述目标从业务节点发送所述待处理事务的事务处理请求,以使所述目标从业务节点成功处理所述待处理事务,包括:
若所述事务处理状态为成功处理状态,所述目标网关节点确定不再向所述从业务节点发送所述待处理事务的事务处理请求;
所述目标网关节点基于所述回调地址向所述主业务节点反馈所述目标从业务节点处理成功所述待处理事务的信息。
3.根据权利要求1所述的方法,其特征在于,所述目标网关节点基于所述事务处理状态以及所述有效处理时长,确定是否再次向所述目标从业务节点发送所述事务处理请求,以使所述目标从业务节点成功处理所述待处理事务,包括:
若所述事务处理状态为失败处理状态,所述目标网关节点基于当前时刻确定是否超过所述事务处理请求的所述有效处理时长;
若是,则所述目标网关节点确定不再向所述从业务节点发送所述待处理事务的事务处理请求;
若否,则所述目标网关节点确定基于所述有效处理时长再次向所述目标从业务节点发送所述待处理事务的事务处理请求,以使所述目标从业务节点成功处理所述待处理事务。
4.根据权利要求3所述的方法,其特征在于,所述目标网关节点确定基于所述有效处理时长再次向所述目标从业务节点发送所述待处理事务的事务处理请求,包括:
所述目标网关节点基于所述有效处理时长设置所述事务处理请求的处理要求信息;
所述目标网关节点将所述处理要求信息,以及所述事务处理请求存入所述目标网关节点对应的缓存区;
所述目标网关节点基于所述处理要求信息和所述有效处理时长向所述目标从业务节点发送所述待处理事务的事务处理请求,直至所述目标从业务节点成功处理所述待处理事务。
5.根据权利要求4所述的方法,其特征在于,所述处理要求信息包括所述目标网关节点向所述目标从业务节点发送所述事务处理请求的目标次数,以及每次发送所述事务处理请求的间隔时长;
所述目标网关节点基于所述处理要求信息和所述有效处理时长向所述目标从业务节点发送所述待处理事务的事务处理请求,直至所述目标从业务节点成功处理所述待处理事务,包括:
所述目标网关节点基于所述间隔时长依次向所述目标从业务节点发送所述待处理事务的事务处理请求;
若所述目标网关节点向所述目标从业务节点发送所述待处理事务的事务处理请求的次数达到所述目标次数,或所述目标从业务节点成功处理所述待处理事务,停止发送所述待处理事务的事务处理请求。
6.根据权利要求3所述的方法,其特征在于,所述事务处理请求包括针对所述主业务节点的回调地址,所述若是,则所述目标网关节点确定不再向所述从业务节点发送所述待处理事务的事务处理请求之后,还包括:
所述目标网关节点基于所述回调地址向所述主业务节点反馈所述目标从业务节点处理失败所述待处理事务的信息。
7.根据权利要求3所述的方法,其特征在于,所述目标从业务节点对应的目标网关节点捕获所述事务处理请求之后,还包括:
基于所述事务处理请求派生副本处理请求,所述副本处理请求与所述事务处理请求相同;
所述若否,则所述目标网关节点确定基于所述有效处理时长再次向所述目标从业务节点发送所述待处理事务的事务处理请求,包括:
若否,则所述目标网关节点基于所述副本处理请求生成再次向所述目标从业务节点发送的新事物处理请求;
基于所述有效处理时长再次向所述目标从业务节点发送所述新事务处理请求。
8.一种分布式事务处理装置,其特征在于,应用于TCC分布式事务架构***,所述TCC分布式事务架构***包括至少一个主业务节点、至少一个从业务节点,以及各所述从业务节点对应的网关节点,所述装置包括:
请求发送单元,用于使所述主业务节点向所述从业务节点中的目标从业务节点发送事务处理请求,所述事务处理请求包括待处理事务的有效处理时长;
请求捕获单元,用于使所述目标从业务节点对应的目标网关节点捕获所述事务处理请求,向所述目标从业务节点发送所述事务处理请求;
事务处理单元,用于使所述目标从业务节点根据所述事务处理请求处理所述待处理事务,并向所述目标网关节点反馈事务处理状态;
确定单元,用于使所述目标网关节点基于所述事务处理状态以及所述有效处理时长,确定是否再次向所述目标从业务节点发送所述待处理事务的事务处理请求,以使所述目标从业务节点成功处理所述待处理事务。
9.一种计算机设备,其特征在于,包括:
存储器,用于存储计算机程序;
处理器,用于在执行所述计算机程序时实现如权利要求1至7任一项所述分布式事务处理方法中的步骤。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1至7任一项所述分布式事务处理方法中的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210369977.5A CN116938927A (zh) | 2022-04-08 | 2022-04-08 | 分布式事务处理方法、装置、计算机设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210369977.5A CN116938927A (zh) | 2022-04-08 | 2022-04-08 | 分布式事务处理方法、装置、计算机设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116938927A true CN116938927A (zh) | 2023-10-24 |
Family
ID=88374389
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210369977.5A Pending CN116938927A (zh) | 2022-04-08 | 2022-04-08 | 分布式事务处理方法、装置、计算机设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116938927A (zh) |
-
2022
- 2022-04-08 CN CN202210369977.5A patent/CN116938927A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP3547715B1 (en) | Method and apparatus for reducing continuous-wakeup delay of bluetooth loudspeaker, and bluetooth loudspeaker | |
CN104106060A (zh) | 支持通知阻塞的功率高效代理通信 | |
CN109002349A (zh) | 应用程序交互方法、实现方法、装置、设备和介质 | |
CN113506100B (zh) | 联盟链数据处理方法、装置、计算机设备及存储介质 | |
CN115345464A (zh) | 业务订单的派单方法、装置、计算机设备及存储介质 | |
CN115509770B (zh) | 微服务调用方法、装置、电子设备及可读存储介质 | |
CN104735134B (zh) | 一种用于提供计算服务的方法和装置 | |
CN116938927A (zh) | 分布式事务处理方法、装置、计算机设备及存储介质 | |
CN115099819A (zh) | 数据推送的方法、装置、存储介质及电子设备 | |
CN113342776A (zh) | 基于智能合约的交易信息迁移方法、装置、设备及介质 | |
CN113806801B (zh) | 交易信息上链方法、装置、计算机设备及存储介质 | |
CN112612496A (zh) | 智能合约操作管理方法、装置、设备和计算机存储介质 | |
CN113098754A (zh) | 一种群组撤销方法、装置、电子设备及存储介质 | |
CN114625522A (zh) | 对象处理方法、装置、存储介质及计算机设备 | |
CN114422535B (zh) | 区块链中部署合约的方法、装置、计算机设备及存储介质 | |
CN113360883B (zh) | 一种智能合约的处理方法、装置、计算机设备及存储介质 | |
CN116308786A (zh) | 区块链交易的处理方法、***、电子设备和可读存储介质 | |
CN116468517A (zh) | 一种订单信息处理方法、装置、电子设备和存储介质 | |
CN115622968A (zh) | 一种黑产行为阻断方法、装置、计算机设备及存储介质 | |
CN115222515A (zh) | 一种资金清算方法、装置、计算机设备及存储介质 | |
CN116128619A (zh) | 一种业务处理方法、装置、计算机设备及存储介质 | |
CN116233130A (zh) | 基于区块链的注册方法、装置、电子设备和可读存储介质 | |
CN116192845A (zh) | 设备处理方法、装置、电子设备和存储介质 | |
CN112905563A (zh) | 签到数据的处理方法、装置、存储介质及计算机设备 | |
CN114661804A (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 |