CN116467390A - 分布式数据处理方法、装置、计算机设备及存储介质 - Google Patents
分布式数据处理方法、装置、计算机设备及存储介质 Download PDFInfo
- Publication number
- CN116467390A CN116467390A CN202310458946.1A CN202310458946A CN116467390A CN 116467390 A CN116467390 A CN 116467390A CN 202310458946 A CN202310458946 A CN 202310458946A CN 116467390 A CN116467390 A CN 116467390A
- Authority
- CN
- China
- Prior art keywords
- accounting
- billing
- target data
- server
- request group
- 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
- 239000012634 fragment Substances 0.000 claims abstract description 275
- 238000000034 method Methods 0.000 claims abstract description 39
- 238000012545 processing Methods 0.000 claims abstract description 25
- 238000004590 computer program Methods 0.000 claims description 3
- 230000008569 process Effects 0.000 description 7
- 238000010586 diagram Methods 0.000 description 6
- 230000000694 effects Effects 0.000 description 4
- 238000012790 confirmation Methods 0.000 description 3
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 238000004891 communication Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 238000004366 reverse phase liquid chromatography Methods 0.000 description 2
- 230000005856 abnormality Effects 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000005192 partition Methods 0.000 description 1
- 238000005096 rolling process Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/23—Updating
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computing Systems (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本申请提供一种分布式数据处理方法、装置、计算机设备及存储介质,涉及数据处理技术领域。该方法包括:接收多条记账请求,每条记账请求包括:记账参数和数据分片标识;根据数据分片标识,对多条记账请求进行分组,得到记账请求组,每个记账请求组的数据分片标识相同;根据每个记账请求组中的数据分片标识和各个服务器上数据分片的标识,在数据分片标识对应的服务器中确定记账请求组的目标数据分片;针对每个记账请求组在对应的目标数据分片中执行记账指令,记账指令用于指示目标数据分片根据每个记账请求组中记账请求的记账参数,执行对应的记账操作。本申请可以降低数据分片执行记账事务的次数,提高对记账请求进行处理的速度和性能。
Description
技术领域
本发明涉及数据处理技术领域,具体而言,涉及一种分布式数据处理方法、装置、计算机设备及存储介质。
背景技术
随着金融企业的业务量逐渐增大,为了保证服务质量,金融企业逐步开发了分布式单元化多地多活式的数据处理系统。
分布式单元化多地多活式的数据处理系统涉及在不同区域分布的应用服务节点和数据服务器,且数据服务器也由多个数据分片构成。
为了提高记账效率,每个应用服务节点每次会接收到多笔记账请求,当多笔记账请求涉及不同数据分片时,针对每个数据分片可能均要执行多次记账事务,导致对记账请求进行处理的速度和性能较差。
发明内容
本发明的目的在于,针对上述现有技术中的不足,提供一种分布式数据处理方法、装置、计算机设备及存储介质,以便降低数据分片执行记账事务的次数,提高对记账请求进行处理的速度和性能。
为实现上述目的,本申请实施例采用的技术方案如下:
第一方面,本申请实施例提供了一种分布式数据处理方法,应用于本地服务节点,所述方法包括:
接收多条记账请求,每条记账请求中包括:记账参数和数据分片标识;
根据所述数据分片标识,对所述多条记账请求进行分组,得到至少一个记账请求组,使得每个记账请求组中的数据分片标识相同;
根据所述每个记账请求组中的数据分片标识和各个服务器上数据分片的标识,在所述数据分片标识对应的服务器中确定所述每个记账请求组对应的目标数据分片;
针对所述目标数据分片属于同一服务器的记账请求组,调用对应的服务器,在对应的服务器中针对所述每个记账请求组在对应的目标数据分片中执行记账指令,所述记账指令用于指示所述目标数据分片根据所述每个记账请求组中记账请求的记账参数,执行对应的记账操作。
可选的,若所述至少一个记账请求组为所述数据分片标识属于本地服务器中同一目标数据分片的一个记账请求组,所述调用对应的服务器,在对应的服务器中针对所述每个记账请求组在对应的目标数据分片中执行记账指令,包括:
调用所述本地服务器,针对所述一个记账请求组在所述本地服务器对应的一个目标数据分片中执行一条本地记账指令。
可选的,若所述至少一个记账请求组为所述数据分片标识属于本地服务器中多个目标数据分片的多个记账请求组,所述调用对应的服务器,在对应的服务器中针对所述每个记账请求组在对应的目标数据分片中执行记账指令,包括:
调用所述本地服务器,针对所述多个记账请求组在所述本地服务器对应的多个目标数据分片中执行多条本地记账指令,所述本地记账指令用于指示所述目标数据分片根据对应的记账请求组中记账请求的记账参数,执行所述记账操作的第一阶段操作;
接收所述多个目标数据分片的第一阶段操作的操作结果;
根据所述第一阶段操作的操作结果,分别在所述多个目标数据分片中执行多条第二阶段操作执行指令,所述第二阶段操作执行指令用于指示所述目标数据分片对所述记账请求组中的记账请求执行第二阶段操作。
可选的,若所述至少一个记账请求组中至少一个第一记账请求组对应的服务器为本地服务器,至少一个第二记账请求组对应的服务器为异地服务器,所述调用对应的服务器,在对应的服务器中针对所述每个记账请求组在对应的目标数据分片中执行记账指令,包括:
调用所述本地服务器,针对所述至少一个第一记账请求组在所述本地服务器对应的至少一个目标数据分片中执行至少一条本地记账指令,所述本地记账指令用于指示所述本地服务器对应的目标数据分片根据对应的记账请求组中记账请求的记账参数,执行所述记账操作的第一阶段操作;
调用所述异地服务器,针对所述至少一个第二记账请求组在所述异地服务器对应的至少一个目标数据分片中执行至少一条远程记账指令,所述远程记账指令用于指示所述异地服务器对应的目标数据分片根据对应的记账请求组中记账请求的记账参数,执行所述记账操作的第一阶段操作;
接收多个目标数据分片的第一阶段操作的操作结果;
根据所述第一阶段操作的操作结果,分别在所述本地服务器和所述异地服务器的多个目标数据分片中执行多条第二阶段操作执行指令,所述第二阶段操作执行指令用于指示所述目标数据分片对所述记账请求组中的记账请求执行第二阶段操作。
可选的,所述记账参数包括:记账账户和待记账数据,若所述第一阶段操作的操作结果为所有目标数据分片中所述记账账户的资源数据满足所述待记账数据,所述第二阶段操作执行指令用于指示所述目标数据分片根据所述记账账户的资源数据和所述待记账数据,修改所述记账账户的资源数据;
若所述第一阶段操作的操作结果为存在一个目标数据分片中所述记账账户的资源数据不满足所述待记账数据,所述第二阶段操作执行指令用于指示所述目标数据分片不修改所述记账账户的资源数据。
可选的,所述接收多个目标数据分片的第一阶段操作的操作结果之前,所述方法还包括:
若所述本地服务器的目标数据分片或所述异地服务器的目标数据分片执行所述第一阶段操作中断,或执行所述第一阶段操作的执行时间大于预设时间,分别向所述本地服务器和所述异地服务器发送回滚指令,所述回滚指令用于指示所述本地服务器的目标数据分片和所述异地服务器的目标数据分片取消已执行的记账请求组的操作数据。
可选的,所述方法还包括:
若检测到任一目标数据分片执行所述第二阶段操作的执行时间大于预设时间,向所述任一目标数据分片发送操作重执行指令,以使得所述任一目标数据分片重新执行所述第二阶段操作。
第二方面,本申请实施例还提供一种分布式数据处理装置,应用于本地服务节点,所述装置包括:
记账请求接收模块,用于接收多条记账请求,每条记账请求中包括:记账参数和数据分片标识;
记账请求分组模块,用于根据所述数据分片标识,对所述多条记账请求进行分组,得到至少一个记账请求组,使得每个记账请求组中的数据分片标识相同;
数据分片确定模块,用于根据所述每个记账请求组中的数据分片标识和各个服务器上数据分片的标识,在所述数据分片标识对应的服务器中确定所述每个记账请求组对应的目标数据分片;
记账指令执行模块,用于针对所述目标数据分片属于同一服务器的记账请求组,调用对应的服务器,在对应的服务器中针对所述每个记账请求组在对应的目标数据分片中执行记账指令,所述记账指令用于指示所述目标数据分片根据所述每个记账请求组中记账请求的记账参数,执行对应的记账操作。
可选的,若所述至少一个记账请求组为所述数据分片标识属于本地服务器中同一目标数据分片的一个记账请求组,所述记账指令执行模块,具体用于调用所述本地服务器,针对所述一个记账请求组在所述本地服务器对应的一个目标数据分片中执行一条本地记账指令。
可选的,若所述至少一个记账请求组为所述数据分片标识属于本地服务器中多个目标数据分片的多个记账请求组,所述记账指令执行模块,包括:
本地记账指令执行单元,用于调用所述本地服务器,针对所述多个记账请求组在所述本地服务器对应的多个目标数据分片中执行多条本地记账指令,所述本地记账指令用于指示所述目标数据分片根据对应的记账请求组中记账请求的记账参数,执行所述记账操作的第一阶段操作;
操作结果接收单元,用于接收所述多个目标数据分片的第一阶段操作的操作结果;
第二阶段操作执行单元,用于根据所述第一阶段操作的操作结果,分别在所述多个目标数据分片中执行多条第二阶段操作执行指令,所述第二阶段操作执行指令用于指示所述目标数据分片对所述记账请求组中的记账请求执行第二阶段操作。
可选的,若所述至少一个记账请求组中至少一个第一记账请求组对应的服务器为本地服务器,至少一个第二记账请求组对应的服务器为异地服务器,所述记账指令执行模块,还包括:远程记账指令执行单元;
所述本地记账指令执行单元,还用于调用所述本地服务器,针对所述至少一个第一记账请求组在所述本地服务器对应的至少一个目标数据分片中执行至少一条本地记账指令,所述本地记账指令用于指示所述本地服务器对应的目标数据分片根据对应的记账请求组中记账请求的记账参数,执行所述记账操作的第一阶段操作;
所述远程记账指令执行单元,用于调用所述异地服务器,针对所述至少一个第二记账请求组在所述异地服务器对应的至少一个目标数据分片中执行至少一条远程记账指令,所述远程记账指令用于指示所述异地服务器对应的目标数据分片根据对应的记账请求组中记账请求的记账参数,执行所述记账操作的第一阶段操作;
所述操作结果接收单元,用于接收多个目标数据分片的第一阶段操作的操作结果;
所述第二阶段操作执行单元,还用于根据所述第一阶段操作的操作结果,分别在所述本地服务器和所述异地服务器的多个目标数据分片中执行多条第二阶段操作执行指令,所述第二阶段操作执行指令用于指示所述目标数据分片对所述记账请求组中的记账请求执行第二阶段操作。
可选的,所述记账参数包括:记账账户和待记账数据,若所述第一阶段操作的操作结果为所有目标数据分片中所述记账账户的资源数据满足所述待记账数据,所述第二阶段操作执行指令用于指示所述目标数据分片根据所述记账账户的资源数据和所述待记账数据,修改所述记账账户的资源数据;
若所述第一阶段操作的操作结果为存在一个目标数据分片中所述记账账户的资源数据不满足所述待记账数据,所述第二阶段操作执行指令用于指示所述目标数据分片不修改所述记账账户的资源数据。
可选的,所述操作结果接收单元之前,所述装置还包括:
回滚模块,用于若所述本地服务器的目标数据分片或所述异地服务器的目标数据分片执行所述第一阶段操作中断,或执行所述第一阶段操作的执行时间大于预设时间,分别向所述本地服务器和所述异地服务器发送回滚指令,所述回滚指令用于指示所述本地服务器的目标数据分片和所述异地服务器的目标数据分片取消已执行的记账请求组的操作数据。
可选的,所述装置还包括:
重执行模块,用于若检测到任一目标数据分片执行所述第二阶段操作的执行时间大于预设时间,向所述任一目标数据分片发送操作重执行指令,以使得所述任一目标数据分片重新执行所述第二阶段操作。
第三方面,本申请实施例还提供一种计算机设备,包括:处理器、存储介质和总线,所述存储介质存储有所述处理器可执行的程序指令,当计算机设备运行时,所述处理器与所述存储介质之间通过总线通信,所述处理器执行所述程序指令,以执行如第一方面任一所述的分布式数据处理方法的步骤。
第四方面,本申请实施例还提供一种计算机可读存储介质,所述存储介质上存储有计算机程序,所述计算机程序被处理器运行时执行如第一方面任一所述的分布式数据处理方法的步骤。
本申请的有益效果是:
本申请提供的一种分布式数据处理方法、装置、计算机设备及存储介质,通过对记账请求根据数据分片标识进行分组,并确定每个记账请求组对应的目标数据分片,针对目标数据分片属于同一服务器的记账请求组,调用对应的服务器,在对应的服务器中由各个目标数据分片执行各个记账请求组的记账指令,与将每个记账请求单独发送给数据分片进行记账相比,减少了调用目标数据分片所在服务器的次数和目标数据分片执行记账操作的次数,提高了对记账请求进行处理的速度和性能。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本发明的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1为本申请实施例提供的分布式数据处理系统的架构图;
图2为本申请实施例提供的分布式数据处理方法的流程示意图一;
图3为本申请实施例提供的分布式数据处理方法的流程示意图二;
图4为本申请实施例提供的分布式数据处理方法的流程示意图三;
图5为本申请实施例提供的第一阶段操作的流程示意图;
图6为本申请实施例提供的分布式数据处理装置的结构示意图;
图7为本申请实施例提供的计算机设备的示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。
因此,以下对在附图中提供的本申请的实施例的详细描述并非旨在限制要求保护的本申请的范围,而是仅仅表示本申请的选定实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
此外,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
需要说明的是,在不冲突的情况下,本申请的实施例中的特征可以相互结合。
为便于理解本申请实施例的方案,先对本申请实施例所涉及的分布式数据处理系统的架构进行说明。
请参考图1,为本申请实施例提供的分布式数据处理系统的架构图,如图1所示,该分布式数据处理系统包括:多个应用服务节点以及每个应用服务节点管理的服务器。其中,每个应用服务节点管理的服务器作为该应用服务节点的本地服务器,其他数据服务器为异地服务器。本地服务器可以为和应用服务节点处于同一地区或者同一局域网中的服务器,异地服务器可以为和应用服务节点处于不同地区或者不同局域网中的服务器。需要说明的是,本地服务器和异地服务器的概念都是相对应用服务节点而言的,一个应用服务节点的本地服务器,也是其他应用服务节点的异地服务器。
每个应用服务节点具有通用记账接口,用于接收业务系统发送的记账请求,接收记账请求的应用服务节点为管理节点,通过调用本地服务器和/或异地服务器执行记账指令,其中,调用异地服务器需要通过RPC(Remote Procedure Call Protocol,远程过程调用协议)进行调用。
多个应用服务节点管理的服务器构成分布式服务器,服务器的最小单元为数据分片,每个数据分片相当于一个子服务器,多个数据分片构成一个服务器,多个分布于不同位置或不同区域的服务器共同构成分布式服务器。示例的,若存在100个数据分片,将100个数据分片划分为多份,每份数据分片对应的多个子服务器构成一个服务器。
用户在金融企业开户时,为用户分配客户号和记账账号,其中,客户号可以根据用户的身份信息生成,每个客户在金融企业中具有唯一的客户号,每个客户号下可以包括多个记账账号,根据客户号,将每个用户的所有记账账号分配在一个数据分片下,当用户的记账账号产生一笔记账请求时,记账请求中会携带记账账号所在的数据分片标识,以指示应用服务节点在对应的数据分片中进行记账操作。
基于上述分布式数据处理系统,本申请实施例提供一种应用于任一应用服务节点的分布式数据处理方法。
请参考图2,为本申请实施例提供的分布式数据处理方法的流程示意图一,如图2所示,该方法可以包括:
S10:接收多条记账请求,每条记账请求中包括:记账参数和数据分片标识。
本实施例中,业务系统接收用户发送的交易指令,根据交易指令产生记账请求,并将多笔记账请求通过应用服务节点的通用记账接口发送给应用服务节点。数据分片标识是根据交易指令所针对的记账账号所属的数据分片确定的。
在一些实施例中,多条记账请求以数组的结构发送给应用服务节点,数组中的每一行数据对应一条记账请求。
S20:根据数据分片标识,对多条记账请求进行分组,得到至少一个记账请求组,使得每个记账请求组中的数据分片标识相同。
为了让针对同一个数据分片只需要执行一次记账指令,使得将记账请求组中的所有记账请求完成记账,本实施例中,根据多条记账请求的数据分片标识,对多条记账请求进行分组,将数据分片标识相同的记账请求分为一组,得到至少一个记账请求组,每个记账请求组中包括至少一条记账请求。
S30:根据每个记账请求组中的数据分片标识和各个服务器上数据分片的标识,在数据分片标识对应的服务器中确定每个记账请求组对应的目标数据分片。
本实施例中,根据各个服务器中所包含的数据分片的标识,确定服务器的数据分片中与记账请求组中的数据分片标识对应的数据分片为目标数据分片。例如:服务器A中有数据分片1和数据分片2,则记账请求中的数据分片标识为1,对应服务器A中的数据分片1,记账请求中的数据分片标识为2,对应服务器A中的数据分片2。
S40:针对目标数据分片属于同一服务器的记账请求组,调用对应的服务器,在对应的服务器中针对每个记账请求组在对应的目标数据分片中执行记账指令,记账指令用于指示目标数据分片根据每个记账请求组中记账请求的记账参数,执行对应的记账操作。
本实施例中,针对每个记账请求组生成一条记账指令,记账指令中包括每个记账请求组中的记账请求,针对目标数据分片属于同一服务器的记账请求组,调用一次对应的服务器,将属于同一服务器的目标数据分片的记账请求组的记账指令发送给同一服务器,该服务器分别在每个记账请求组对应的目标数据分片中执行记账指令,使得每个目标数据分片根据每个记账请求组中记账请求的记账参数执行记账操作。
在一些实施例中,记账操作执行成功后,目标数据分片会生成记账凭证或者记账明细记录,目标数据分片可以将记账凭证或者记账明细记账返回给应用服务节点。
在一种可能的实现方式中,应用服务节点针对每个记账请求组建立一个记账事务,每个记账事务即为一条记账指令,记账事务中包括每个记账请求组的记账请求,每个记账事务作为一个待处理进程存储在应用服务节点的进程池中,应用服务节点通过从进程池中依次获取每个记账事务,将属于同一服务器的记账事务发送给对应的服务器,由服务器将每个记账事务发送给每个记账请求组对应的目标数据分片,目标数据分片执行记账事务,根据每个记账请求组中记账请求的记账参数执行记账操作。
以下结合多个实施例对上述将记账请求组转发至服务器的多个可能的实现方式进行说明。
在第一种可能的实现方式中,若至少一个记账请求组为数据分片标识属于本地服务器中同一目标数据分片的一个记账请求组,上述S40包括:
调用本地服务器,针对一个记账请求组在本地服务器对应的一个目标数据分片中执行一条本地记账指令。
本实施例中,根据多条记账请求的数据分片标识对多条记账请求进行分组,若多条记账请求的数据分片标识相同,且该数据分片标识对应的服务器为本地服务器,则将多条记账请求分组为一个记账请求组,该记账请求组对应的服务器为本地服务器,数据分片标识对应的目标数据分片为本地服务器中的一个数据分片。
针对该记账请求组生成一条记账指令,记账指令包括该记账请求组中的记账请求,调用本地服务器,将记账指令发送给本地服务器,由本地服务器在该记账请求组对应的目标数据分片中执行一条记账指令,使得该目标数据分片根据该记账请求组中记账请求的记账参数执行记账操作。
示例的,应用服务节点针对该记账请求组创建一个本地记账事务,本地记账事务中包括记账请求组,调用本地服务器,将本地记账事务发送给本地服务器,由本地服务器上的目标数据分片执行本地记账事务,以针对记账请求组中的记账请求依次执行记账操作。
在第二种可能的实现方式中,请参考图3,为本申请实施例提供的分布式数据处理方法的流程示意图二,如图3所示,上述S40可以包括:
S41:调用本地服务器,针对多个记账请求组在本地服务器对应的多个目标数据分片中执行多条本地记账指令,本地记账指令用于指示目标数据分片根据对应的记账请求组中记账请求的记账参数,执行记账操作的第一阶段操作。
本实施例中,根据多条记账请求的数据分片标识对多条记账请求进行分组,得到多个记账请求组,若多条记账请求的数据分片标识对应的服务器均为本地服务器,多个记账请求组的数据分片标识对应本地服务器中的多个目标数据分片。
针对多个记账请求组生成多条本地记账指令,每条记账指令中包括对应的记账请求组,调用本地服务器,将多条本地记账指令发送给本地服务器,由本地服务器在每个记账请求组对应的目标数据分片中执行对应的本地记账指令,使得每个目标数据分片根据每个记账请求组中记账请求的记账参数执行记账操作的第一阶段操作。其中,第一阶段操作为预记账阶段。
示例的,应用服务节点针对多个记账请求组创建多个本地记账事务,每个本地记账事务中包括对应的记账请求组,将多个本地记账事务发送给本地服务器上的多个目标数据分片,由本地服务器上的多个目标数据分片分别执行对应的本地记账事务,对记账请求组中的记账请求依次执行第一阶段操作。
S42:接收多个目标数据分片的第一阶段操作的操作结果。
本实施例中,每个目标数据分片的第一阶段操作的操作结果用于指示每个目标数据分片执行对应的记账请求组中所有的记账请求是否成功,若每个目标数据分片执行对应的记账请求组中所有的记账请求成功,则第一阶段操作的操作结果为成功;若每个目标数据分片执行对应的记账请求组中存在一条记账请求失败,则第一阶段操作的操作结果为失败。
S43:根据第一阶段操作的操作结果,分别在多个目标数据分片中执行多条第二阶段操作执行指令,第二阶段操作执行指令用于指示所标数据分片对记账请求组中的记账请求执行第二阶段操作。
本实施例中,第二阶段操作为确认记账阶段或取消记账阶段,若所有目标数据分片的第一阶段操作的操作结果为成功,则第二阶段操作为确认记账,若存在一个目标数据分片的第一阶段操作的操作结果为失败,则第二阶段操作为取消记账。
在第三种可能的实现方式中,请参考图4,为本申请实施例提供的分布式数据处理方法的流程示意图三,如图4所示,上述S40可以包括:
S44:调用本地服务器,针对至少一个第一记账请求组在本地服务器对应的至少一个目标数据分片中执行至少一条本地记账指令,本地记账指令用于指示本地服务器对应的目标数据分片根据对应的记账请求组中记账请求的记账参数,执行记账操作的第一阶段操作。
S45:调用异地服务器,针对至少一个第二记账请求组在异地服务器对应的至少一个目标数据分片中执行至少一条远程记账指令,远程记账指令用于指示异地服务器对应的目标数据分片根据对应的记账请求组中记账请求的记账参数,执行记账操作的第一阶段操作。
S46:接收多个目标数据分片的第一阶段操作的操作结果。
S47:根据第一阶段操作的操作结果,分别在本地服务器和异地服务器的多个目标数据分片中执行多条第二阶段操作执行指令,第二阶段操作执行指令用于指示目标数据分片对记账请求组中的记账请求执行第二阶段操作。
本实施例中,根据多条记账请求的数据分片标识对多条记账请求进行分组,得到多个记账请求组,其中,多个记账请求组中的至少一个第一记账请求组的数据分片标识对应本地服务器,多个记账请求组中的至少一个第二记账请求组的数据分片标识对应异地服务器,若至少一个第一记账请求组为一个第一记账请求组,则该第一记账请求组对应本地服务器中的一个目标数据分片,若至少一个第一记账请求组为多个第一记账请求组,则多个第一记账请求组对应本地服务器中的多个目标数据分片;同样的,至少一个第二记账请求组的数据分片标识可以对应一个异地服务器中的一个目标数据分片,也可以对应一个异地服务器中的多个目标数据分片,还可以对应多个异地服务器中的多个目标数据分片。
针对属于本地服务器的至少一个第一记账请求组生成至少一条本地记账指令,调用本地服务器,将至少一条本地记账指令发送给本地服务器,由本地服务器在每个第一记账请求组对应的目标数据分片中执行对应的本地记账指令,使得每个目标数据分片根据每个第一记账请求组中记账请求的记账参数执行记账操作的第一阶段操作。
针对属于异地服务器的至少一个第二记账请求组生成至少一条远程记账指令,调用异地服务器,将至少一条远程记账指令发送给异地服务器,由异地服务器在每个第二记账请求组对应的目标数据分片中执行对应的远程记账指令,使得每个目标数据分片根据每个第二记账请求组中记账请求的记账参数执行记账操作的第一阶段操作。其中,远程记账指令需要通过RPC调用发送至异地服务器。
示例的,应用服务节点针对多个记账请求组创建多个本地记账事务和远程记账事务,将多个本地记账事务发送给本地服务器,由本地服务器上的目标数据分片分别执行对应的本地记账事务,对记账请求组中的记账请求依次执行第一阶段操作;将多个远程记账事务发送给异地服务器,由异地服务器上的目标数据分片分别执行对应的异地记账事务,对记账请求组中的记账请求依次执行第一阶段操作。
根据本地服务器和异地服务器的多个目标数据分片的第一阶段操作的操作结果,分别在本地服务器和异地服务器的多个目标数据分片中执行多条第二阶段操作执行指令,若所有目标数据分片的第一阶段操作的操作结果为成功,则第二阶段操作为确认记账,若存在一个目标数据分片的第一阶段操作的操作结果为失败,则第二阶段操作为取消记账。
在一种可能的实现方式中,记账参数包括:记账账号和待记账数据,若第一阶段操作的操作结果为所有目标数据分片中记账账户的资源数据满足待记账数据,第二阶段操作执行指令用于指示目标数据分片根据记账账户的资源数据和待记账数据,修改记账账户的资源数据;若第一阶段操作的操作结果为存在一个目标数据分片中记账账户的资源数据不满足待记账数据,第二阶段操作执行指令用于指示目标数据分片不修改记账账户的资源数据。
本实施例中,第一阶段操作用于根据每个记账请求组中所有记账请求中的记账账号,获取目标数据分片中存储的所有记账账号的资源数据,根据各个记账账号的资源数据和待记账数据,确定各个记账账号是否可以成功预留待记账数据对应的资源数据,若可以成功,则从各个记账账号的资源数据中预留待记账数据对应的资源,以便第二阶段操作确认。需要说明的是,仅针对待记账数据为支出数据的情况判断各个记账账号是否可以成功预留待记账数据对应的资源数据,将预留数据作为预冻结数据;若待记账数据为收入数据,则不需要判断各个记账账号是否可以成功预留待记账数据对应的资源数据,直接根据待记账数据生成未达账数据即可。
若记账请求组中所有记账账户的资源数据满足待记账数据,确定可以成功预留待记账数据对应的资源数据,则第一阶段操作的操作结果为成功,若记账请求组中存在一个记账账户的资源数据不满足待记账数据,确定未成功预留待记账数据对应的资源数据,则第一阶段操作的操作结果为失败。
若所有目标数据分片的第一阶段操作的操作结果为成功,第二阶段操作用于根据记账账户的资源数据和待记账数据,修改记账账户的资源数据,其中,若待记账数据为支出数据,则修改后的资源数据为初始的资源数据减去待记账数据;若待记账数据为收入数据,则修改后的资源数据为初始的资源数据加上待记账数据。若存在一个目标数据分片的第一阶段操作的操作结果为失败,第二阶段操作用于取消预留的待记账数据对应的资源数据,不对记账账户的资源数据进行修改。
上述实施例提供的分布式数据处理方法,通过对记账请求根据数据分片标识进行分组,并确定每个记账请求组对应的目标数据分片,由各个目标数据分片执行各个记账请求组的记账指令,与将每个记账请求单独发送给数据分片进行记账相比,减少了调用目标数据分片所在服务器的次数和目标数据分片执行记账操作的次数,提高了对记账请求进行处理的速度和性能。
在一些实施例中,应用服务节点预先创建一管理事务表,在管理事务表中为多条记账请求记录主事务标识,并确定多条记账请求的主事务状态为初始状态;应用服务节点将各个记账请求组的记账指令发送给对应的服务器,在服务器的目标数据分片上执行记账指令时,目标数据分片在分支事务表中登记记账指令中的记账请求组,并确定该记账请求组的分支事务状态为初始状态。
若目标数据分片的第一阶段操作的操作结果为成功,则将记账请求组的分支事务状态更新为待提交,若目标数据分片的第一阶段操作的操作结果为失败,则将记账请求组的分支事务状态更新为待回滚。
应用服务节点成功接收到各目标数据分片的第一阶段操作的操作结果后,确定各目标数据分片执行记账事务成功,将管理事务表中的主事务状态更新为待提交,若任意一个目标数据分片返回第一阶段操作的操作结果失败,则将管理事务表中的主事务状态更新为待回滚。
应用服务节点根据主事务状态,向各个目标数据分片发送第二阶段操作执行指令,其中,若主事务状态为待提交,则第二阶段操作为确认操作,根据各个记账账号的预冻结数据或未达账数据更新记账账户的资源数据,并还原预冻结数据或未达账数据;若主事务状态为待回滚,则第二阶段操作为回滚操作或取消操作,不对各个记账账户的资源数据进行修改,直接还原预冻结数据或未达账数据。其中,若存在一个目标数据分片的第一阶段操作的操作结果为失败,对于第一阶段操作的操作结果为成功的目标数据分片执行取消操作,对于第一阶段操作的操作结果为失败的目标数据分片执行回滚(cancel)操作。
完成确认操作后,在各个目标数据分片中将分支事务状态修改为已提交,将管理事务表中的主事务状态修改为已提交;完成取消操作后,在各个目标数据分片中将分支事务状态修改为已回滚,将管理事务表中的主事务状态修改为已回滚。
上述第一阶段操作和第二阶段操作构成的记账操作为TCC(try、confirm/cancel,尝试、确认/取消)记账模式,其中,第一阶段为try阶段,第二阶段为confirm阶段或cancel阶段。
示例的,请参考图5,为本申请实施例提供的第一阶段操作的流程示意图,如图5所示,目标数据分片执行try阶段的过程为:
S51:目标数据分片在分支事务表中登记记账请求组,并锁住记账事务。
具体的,目标数据分片接收到分支记账事务(本地记账事务或远程记账事务)后,对分支记账事务中的记账请求组进行登记,并锁住分支记账事务,即当前执行执行第一阶段操作,若此时接收到其他操作指令,不会对记账请求组执行其他操作指令。
S52:对记账请求组中的各条记账请求进行分组,将属于同一记账账号的分为一组。
S53:判断记账请求组中是否还有未执行的记账请求,若为是,执行S54,若为否,则结束第一阶段操作。
S54:对每条记账请求确定记账模式,登记记账请求,并调用记账引擎进行数据预留,检查预留资源数据后的剩余数据合法性,完成一条记账请求,重新执行S53。
需要说明的是,若在执行S54的过程中,数据预留失败,或者剩余数据不合法,则停止对剩余记账请求进行记账,返回第一阶段操作的操作结果为失败,若记账请求组中所有的记账请求均执行完成,返回第一阶段操作的操作结果为成功。
在一种可能的实现方式中,在上述S42或S46接收多个目标数据分片的第一阶段操作的操作结果之前,该方法还可以包括:
若本地服务器的目标数据分片或异地服务器的目标数据分片执行第一阶段操作中断,或执行第一阶段操作的执行时间大于预设时间,分别向本地服务器和异地服务器发送回滚指令,回滚指令用于指示本地服务器的目标数据分片和异地服务器的目标数据分片取消已执行的记账请求组的操作数据。
本实施例中,应用服务节点按照本地服务器和异地服务器的顺序,依次调用各个目标数据分片执行第一阶段操作,首先由本地服务器上的目标数据分片执行第一阶段操作,当本地服务器上的目标数据分片执行第一阶段操作成功后,再由各个异地服务器的目标数据分片依次执行第一阶段操作,在各个目标数据分片执行第一阶段操作的过程中,若存在一个目标数据分片出现执行中断、异常或超时,则应用服务节点停止触发其他目标数据分片继续执行第一阶段操作,并将主事务状态修改为待回滚,之后,向已经执行过第一阶段操作的目标数据分片发送回滚指令,以使得已经执行过第一阶段操作的目标数据分片针对记账请求组中各记账账户的操作进行回滚,取消预冻结数据或未达账数据。
示例的,目标数据分片执行第一阶段操作中断可以为执行第一阶段操作的业务报错,或发生网络异常等情况。
在一些实施例中,将各个记账请求组对应的数据分片标识拼接为字符串,在管理事务表的主事务中登记该字符串,将该字符串作为主事务的属性,当需要进行回滚时,可以根据该字符串确定向哪些目标数据分片发送回滚指令。
需要说明的是,各个目标数据分片执行第一阶段操作可以采用同步执行或异步执行,各个目标数据分片执行第二阶段操作是异步执行,其中,同步执行为一个目标数据分片执行完后下一个目标数据分片才可以开始执行,异步执行为多个目标数据分片同步执行。由于第二阶段操作仅仅是对第一阶段操作的操作结果进行确认或取消,采用异步执行第二阶段操作,可以在保证资金安全的前提下,降低处理记账请求的时间,提高记账效率。
由于第一阶段操作是同步执行的,每次只有一个目标数据分片执行第一阶段操作,可以通过定时任务定时轮询执行第一阶段操作的目标数据分片,确定目标数据分片执行第一阶段操作的执行时间,若目标数据分片执行第一阶段操作的执行时间大于预设时间,确定目标数据分片未响应,向目标数据分片发送重执行指令,使目标数据分片对已执行的记账请求回滚至初始状态,并对整个记账请求组重新执行第一阶段操作。
在一种可能的实现方式中,该方法还可以包括:
若检测到任一目标数据分片执行第二阶段操作的执行时间大于预设时间,向任一目标数据分片发送操作重执行指令,以使得任一目标数据分片重新执行第一阶段操作或第二阶段操作。
本实施例中,在各个目标数据分片执行第二阶段操作的过程中,可能因为各种原因导致目标数据分片未成功执行第二阶段操作,也未向应用服务节点返回执行结果,为了保证各个目标数据分片成功执行第二阶段操作,需要对执行时间超时的操作重新执行。
需要说明的是,各个目标数据分片具有幂等接口,以保证各个目标数据分片在多次重新执行第二阶段操作时,执行结果与执行一次相同,避免因为多次执行确认操作或取消操作导致记账账户的资源数据不准确,保证账户资源的安全。
示例的,可以根据各个分支事务表最后一次的修改时间以及各个分支事务表的状态,确定分支事务表距离最后一次的修改时间超过预设时间,且状态为非终态的记账请求组重新执行操作。其中,非终态可以为初始状态、待提交状态或待回滚状态,终态可以为已提交状态或已回滚状态。
上述实施例提供的分布式数据处理方法,通过对执行时间超时的操作进行重新执行,实现对记账操作的兜底,可以保证各个阶段的操作成功执行,避免因执行失败导致账户数据错误,保证了账户数据的安全性。
在上述实施例的基础上,本申请实施例还提供一种分布式数据处理装置,应用于本地服务节点。请参考图6,为本申请实施例提供的分布式数据处理装置的结构示意图,如图6所示,该装置包括:
记账请求接收模块10,用于接收多条记账请求,每条记账请求中包括:记账参数和数据分片标识;
记账请求分组模块20,用于根据数据分片标识,对多条记账请求进行分组,得到至少一个记账请求组,使得每个记账请求组中的数据分片标识相同;
数据分片确定模块30,用于根据每个记账请求组中的数据分片标识和各个服务器上数据分片的标识,在数据分片标识对应的服务器中确定每个记账请求组对应的目标数据分片;
记账指令执行模块40,用于针对目标数据分片属于同一服务器的记账请求组,调用对应的服务器,在对应的服务器中针对每个记账请求组在对应的目标数据分片中执行记账指令,记账指令用于指示目标数据分片根据每个记账请求组中记账请求的记账参数,执行对应的记账操作。
可选的,若至少一个记账请求组为数据分片标识属于本地服务器中同一目标数据分片的一个记账请求组,记账指令执行模块40,具体用于调用本地服务器,针对一个记账请求组在本地服务器对应的一个目标数据分片中执行一条本地记账指令。
可选的,若至少一个记账请求组为数据分片标识属于本地服务器中多个目标数据分片的多个记账请求组,记账指令执行模块40,包括:
本地记账指令执行单元,用于调用本地服务器,针对多个记账请求组在本地服务器对应的多个目标数据分片中执行多条本地记账指令,本地记账指令用于指示目标数据分片根据对应的记账请求组中记账请求的记账参数,执行记账操作的第一阶段操作;
操作结果接收单元,用于接收多个目标数据分片的第一阶段操作的操作结果;
第二阶段操作执行单元,用于根据第一阶段操作的操作结果,分别在多个目标数据分片中执行多条第二阶段操作执行指令,第二阶段操作执行指令用于指示目标数据分片对记账请求组中的记账请求执行第二阶段操作。
可选的,若至少一个记账请求组中至少一个第一记账请求组对应的服务器为本地服务器,至少一个第二记账请求组对应的服务器为异地服务器,记账指令执行模块40还包括:远程记账指令执行单元;
本地记账指令执行单元,还用于调用本地服务器,针对至少一个第一记账请求组在本地服务器对应的至少一个目标数据分片中执行至少一条本地记账指令,本地记账指令用于指示本地服务器对应的目标数据分片根据对应的记账请求组中记账请求的记账参数,执行记账操作的第一阶段操作;
远程记账指令执行单元,用于调用异地服务器,针对至少一个第二记账请求组在异地服务器对应的至少一个目标数据分片中执行至少一条远程记账指令,远程记账指令用于指示异地服务器对应的目标数据分片根据对应的记账请求组中记账请求的记账参数,执行记账操作的第一阶段操作;
操作结果接收单元,用于接收多个目标数据分片的第一阶段操作的操作结果;
第二阶段操作执行单元,还用于根据第一阶段操作的操作结果,分别在本地服务器和异地服务器的多个目标数据分片中执行多条第二阶段操作执行指令,第二阶段操作执行指令用于指示目标数据分片对记账请求组中的记账请求执行第二阶段操作。
可选的,记账参数包括:记账账户和待记账数据,若第一阶段操作的操作结果所有目标数据分片中为记账账户的资源数据满足待记账数据,第二阶段操作执行指令用于指示目标数据分片根据记账账户的资源数据和待记账数据,修改记账账户的资源数据;
若第一阶段操作的操作结果为存在一个目标数据分片中记账账户的资源数据不满足待记账数据,第二阶段操作执行指令用于指示目标数据分片不修改记账账户的资源数据。
可选的,操作结果接收单元之前,该装置还包括:
回滚模块,用于若本地服务器的目标数据分片或异地服务器的目标数据分片执行第一阶段操作中断,或执行第一阶段操作的执行时间大于预设时间,分别向本地服务器和异地服务器发送回滚指令,回滚指令用于指示本地服务器的目标数据分片和异地服务器的目标数据分片取消已执行的记账请求组的操作数据。
可选的,该装置还包括:
重执行模块,用于若检测到任一目标数据分片执行第二阶段操作的执行时间大于预设时间,向任一目标数据分片发送操作重执行指令,以使得任一目标数据分片重新执行第二阶段操作。
上述装置用于执行前述实施例提供的方法,其实现原理和技术效果类似,在此不再赘述。
以上这些模块可以是被配置成实施以上方法的一个或多个集成电路,例如:一个或多个特定集成电路(Application Specific Integrated Circuit,简称ASIC),或,一个或多个微处理器,或,一个或者多个现场可编程门阵列(Field Programmable Gate Array,简称FPGA)等。再如,当以上某个模块通过处理元件调度程序代码的形式实现时,该处理元件可以是通用处理器,例如中央处理器(Central Processing Unit,简称CPU)或其它可以调用程序代码的处理器。再如,这些模块可以集成在一起,以片上系统(system-on-a-chip,简称SOC)的形式实现。
请参考图7,为本申请实施例提供的计算机设备的示意图,该计算机设备100包括:处理器101、存储介质102和总线,存储介质102存储有处理器101可执行的程序指令,当计算机设备100运行时,处理器101与存储介质102之间通过总线通信,处理器101执行程序指令,以执行上述方法实施例。具体实现方式和技术效果类似,这里不再赘述。
可选地,本申请实施例还提供一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器运行时,执行上述方法实施例。具体实现方式和技术效果类似,这里不再赘述。
在本发明所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。
上述以软件功能单元的形式实现的集成的单元,可以存储在一个计算机可读取存储介质中。上述软件功能单元存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器(英文:processor)执行本发明各个实施例所述方法的部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(英文:Read-Only Memory,简称:ROM)、随机存取存储器(英文:Random Access Memory,简称:RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
上仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。
Claims (10)
1.一种分布式数据处理方法,其特征在于,应用于本地服务节点,所述方法包括:
接收多条记账请求,每条记账请求中包括:记账参数和数据分片标识;
根据所述数据分片标识,对所述多条记账请求进行分组,得到至少一个记账请求组,使得每个记账请求组中的数据分片标识相同;
根据所述每个记账请求组中的数据分片标识和各个服务器上数据分片的标识,在所述数据分片标识对应的服务器中确定所述每个记账请求组对应的目标数据分片;
针对所述目标数据分片属于同一服务器的记账请求组,调用对应的服务器,在对应的服务器中针对所述每个记账请求组在对应的目标数据分片中执行记账指令,所述记账指令用于指示所述目标数据分片根据所述每个记账请求组中记账请求的记账参数,执行对应的记账操作。
2.如权利要求1所述的方法,其特征在于,若所述至少一个记账请求组为所述数据分片标识属于本地服务器中同一目标数据分片的一个记账请求组,所述调用对应的服务器,在对应的服务器中针对所述每个记账请求组在对应的目标数据分片中执行记账指令,包括:
调用所述本地服务器,针对所述一个记账请求组在所述本地服务器对应的一个目标数据分片中执行一条本地记账指令。
3.如权利要求1所述的方法,其特征在于,若所述至少一个记账请求组为所述数据分片标识属于本地服务器中多个目标数据分片的多个记账请求组,所述调用对应的服务器,在对应的服务器中针对所述每个记账请求组在对应的目标数据分片中执行记账指令,包括:
调用所述本地服务器,针对所述多个记账请求组在所述本地服务器对应的多个目标数据分片中执行多条本地记账指令,所述本地记账指令用于指示所述目标数据分片根据对应的记账请求组中记账请求的记账参数,执行所述记账操作的第一阶段操作;
接收所述多个目标数据分片的第一阶段操作的操作结果;
根据所述第一阶段操作的操作结果,分别在所述多个目标数据分片中执行多条第二阶段操作执行指令,所述第二阶段操作执行指令用于指示所述目标数据分片对所述记账请求组中的记账请求执行第二阶段操作。
4.如权利要求1所述的方法,其特征在于,若所述至少一个记账请求组中至少一个第一记账请求组对应的服务器为本地服务器,至少一个第二记账请求组对应的服务器为异地服务器,所述调用对应的服务器,在对应的服务器中针对所述每个记账请求组在对应的目标数据分片中执行记账指令,包括:
调用所述本地服务器,针对所述至少一个第一记账请求组在所述本地服务器对应的至少一个目标数据分片中执行至少一条本地记账指令,所述本地记账指令用于指示所述本地服务器对应的目标数据分片根据对应的记账请求组中记账请求的记账参数,执行所述记账操作的第一阶段操作;
调用所述异地服务器,针对所述至少一个第二记账请求组在所述异地服务器对应的至少一个目标数据分片中执行至少一条远程记账指令,所述远程记账指令用于指示所述异地服务器对应的目标数据分片根据对应的记账请求组中记账请求的记账参数,执行所述记账操作的第一阶段操作;
接收多个目标数据分片的第一阶段操作的操作结果;
根据所述第一阶段操作的操作结果,分别在所述本地服务器和所述异地服务器的多个目标数据分片中执行多条第二阶段操作执行指令,所述第二阶段操作执行指令用于指示所述目标数据分片对所述记账请求组中的记账请求执行第二阶段操作。
5.如权利要求3或4所述的方法,其特征在于,所述记账参数包括:记账账户和待记账数据,若所述第一阶段操作的操作结果为所有目标数据分片中所述记账账户的资源数据满足所述待记账数据,所述第二阶段操作执行指令用于指示所述目标数据分片根据所述记账账户的资源数据和所述待记账数据,修改所述记账账户的资源数据;
若所述第一阶段操作的操作结果为存在一个目标数据分片中所述记账账户的资源数据不满足所述待记账数据,所述第二阶段操作执行指令用于指示所述目标数据分片不修改所述记账账户的资源数据。
6.如权利要求3或4所述的方法,其特征在于,所述接收多个目标数据分片的第一阶段操作的操作结果之前,所述方法还包括:
若所述本地服务器的目标数据分片或所述异地服务器的目标数据分片执行所述第一阶段操作中断,或执行所述第一阶段操作的执行时间大于预设时间,分别向所述本地服务器和所述异地服务器发送回滚指令,所述回滚指令用于指示所述本地服务器的目标数据分片和所述异地服务器的目标数据分片取消已执行的记账请求组的操作数据。
7.如权利要求3或4所述的方法,其特征在于,所述方法还包括:
若检测到任一目标数据分片执行所述第二阶段操作的执行时间大于预设时间,向所述任一目标数据分片发送操作重执行指令,以使得所述任一目标数据分片重新执行所述第二阶段操作。
8.一种分布式数据处理装置,其特征在于,应用于本地服务节点,所述装置包括:
记账请求接收模块,用于接收多条记账请求,每条记账请求中包括:记账参数和数据分片标识;
记账请求分组模块,用于根据所述数据分片标识,对所述多条记账请求进行分组,得到至少一个记账请求组,使得每个记账请求组中的数据分片标识相同;
数据分片确定模块,用于根据所述每个记账请求组中的数据分片标识和各个服务器上数据分片的标识,在所述数据分片标识对应的服务器中确定所述每个记账请求组对应的目标数据分片;
记账指令执行模块,用于针对所述目标数据分片属于同一服务器的记账请求组,调用对应的服务器,在对应的服务器中针对所述每个记账请求组在对应的目标数据分片中执行记账指令,所述记账指令用于指示所述目标数据分片根据所述每个记账请求组中记账请求的记账参数,执行对应的记账操作。
9.一种计算机设备,其特征在于,包括:处理器、存储介质和总线,所述存储介质存储有所述处理器可执行的程序指令,当计算机设备运行时,所述处理器与所述存储介质之间通过总线通信,所述处理器执行所述程序指令,以执行如权利要求1至7任一所述的分布式数据处理方法的步骤。
10.一种计算机可读存储介质,其特征在于,所述存储介质上存储有计算机程序,所述计算机程序被处理器运行时执行如权利要求1至7任一所述的分布式数据处理方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310458946.1A CN116467390A (zh) | 2023-04-25 | 2023-04-25 | 分布式数据处理方法、装置、计算机设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310458946.1A CN116467390A (zh) | 2023-04-25 | 2023-04-25 | 分布式数据处理方法、装置、计算机设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116467390A true CN116467390A (zh) | 2023-07-21 |
Family
ID=87173271
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310458946.1A Pending CN116467390A (zh) | 2023-04-25 | 2023-04-25 | 分布式数据处理方法、装置、计算机设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116467390A (zh) |
-
2023
- 2023-04-25 CN CN202310458946.1A patent/CN116467390A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN113268471B (zh) | 处理分布式事务的方法、代理连接池、系统、设备及介质 | |
CN112446786A (zh) | 一种异常交易处理方法、装置、电子设备和可读存储介质 | |
CN114253673A (zh) | 一种分布式系统的事务处理方法和事务处理装置 | |
CN113112344B (zh) | 业务处理方法、设备、存储介质及计算机程序产品 | |
CN108762895B (zh) | 处理分布式事务的方法及装置 | |
CN114371918A (zh) | 分布式事务的处理方法、装置、存储介质及电子设备 | |
CN113760976A (zh) | 业务的处理方法、装置、设备及存储介质 | |
CN115729946B (zh) | 一种处理分布式事务的方法、装置、设备及存储介质 | |
CN116467390A (zh) | 分布式数据处理方法、装置、计算机设备及存储介质 | |
CN116226144A (zh) | 数据的处理方法、装置、计算机可读存储介质和电子设备 | |
CN111866171B (zh) | 报文处理方法、装置、电子设备和介质 | |
CN115208834A (zh) | 一种基于数据库存储过程设计的服务流量限制方法 | |
CN112527473B (zh) | 一种分布式事务处理方法及装置 | |
US11500857B2 (en) | Asynchronous remote calls with undo data structures | |
CN114356888A (zh) | 事务处理方法及装置、存储介质及电子设备 | |
CN113986941A (zh) | 事务批量处理方法及装置 | |
CN112598520A (zh) | 交易管理的方法、装置、电子设备以及存储介质 | |
CN106375354B (zh) | 数据处理方法及装置 | |
CN113849278A (zh) | 全局事务处理方法及系统 | |
CN117670328A (zh) | 一种母子账户交易恢复方法、装置、设备及介质 | |
CN115048198A (zh) | 基于分布式交互系统的业务处理方法、装置、设备及介质 | |
CN106330945B (zh) | 数字证书同步方法、数字签名服务器及数字证书同步系统 | |
CN117032909A (zh) | 金融业务中分布式事务的补偿方法、装置、设备及介质 | |
CN114637738A (zh) | 数据可见性判断方法、装置、数据库节点及介质 | |
CN117172897A (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 |