一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种数据处理方法、装置及系统与流程

2022-03-23 02:40:41 来源:中国专利 TAG:


1.本发明涉及数据处理技术领域,尤其涉及一种数据处理方法、装置及系统。


背景技术:

2.在传统单体架构应用当中,单体应用的所有模块都使用同一个数据库,在模块有数据关联的时候,或者需要同时写入相关联的数据的时候,数据一致性是通过数据库的事务来保障的,通过数据库提供的提交以及回滚机制来保证相关操作的事务管理acid。
3.在微服务架构下,每一个微服务一个数据库。由于微服务独立开发,独立演进,及独立部署。因此在微服务架构下,无法通过上述示出的数据库的事务来保证数据一致性。


技术实现要素:

4.有鉴于此,本发明实施例提供一种数据处理方法、装置及系统,以解决现有技术中无法通过数据库的事务来保证数据一致性的问题。
5.为实现上述目的,本发明实施例提供如下技术方案:
6.本发明实施例第一方面示出了一种数据处理方法,应用于事务协调管理器,所述方法包括:
7.在接收到第一事务终端发送的事务创建申请请求时,基于所述事务创建申请请求中携带的业务信息创建目标事务组,所述目标事务组中包含对应的事务信息;
8.在确定所述目标事务组创建之后,向所述第一事务终端发送所述目标事务组的事务信息,以便所述第一事务终端在接收到所述事务信息之后,执行业务基础代码;
9.在接收到第二事务终端发送的加入目标事务组的申请指令之后,将所述第二事务终端的日志标识信息和身份标识信息加入所述目标事务组,并向所述第二事务终端发送基于所述日志标识信息和身份标识信息更新后的事务信息,所述第二事务终端的数量至少为1个;
10.在接收到所述第一事务终端发送的通知请求时,根据所述通知指令中携带的第一操作结果和第二操作结果,将对应的通知消息通知所述第一事务终端和所述第二事务终端,以便所述第一事务终端和所述第二事务终端进行相应的事务操作,所述事务操作包括事务执行操作和事务中止操作。
11.可选的,根据所述通知指令中携带的第一操作结果和第二操作结果,将对应的通知消息通知所述第一事务终端和所述第二事务终端,包括:
12.在确定所述第一操作结果和所述第二操作结果均为操作成功结果时,将对应的通知消息发送给所述第二事务终端,以便所述第二事务终端进行相应的事务执行操作;
13.在接收到第二事务终端反馈给的事务操作完成信息之后,将对应的通知消息发送给所述第一事务终端,以便所述第一事务终端进行相应的事务执行操作;
14.在确定所述第一操作结果和所述第二操作结果中存在操作异常结果时,将对应的通知消息发送给所述第一事务终端和所述第二事务终端,以便所述第一事务终端和所述第
二事务终端进行事务中止操作。
15.可选的,所述将对应的通知消息发送给所述第二事务终端,以便所述第二事务终端进行相应的事务操作,包括:
16.在确定所述第二事务终端的数量为1个时,将对应的通知消息发送给所述第二事务终端,以便所述第二事务终端进行相应的事务操作;
17.在确定所述第二事务终端的数量为多个时,遍历所有的所述第二事务终端,按照预设规则逐个将对应的通知消息发送给所述第二事务终端,以便所述第二事务终端进行相应的事务操作。
18.可选的,所述在第一事务终端和所述第二事务终端进行事务中止操作之后,控制所述第一事务终端和所述第二事务终端进行事务回滚。
19.本发明实施例第二方面示出了一种数据处理方法,应用于,第一事务终端,所述方法包括:
20.获取待执行业务对应的业务信息;
21.将基于所述业务信息生成的事务创建申请请求发送给事务协调管理器;
22.在接收所述事务协调管理器发送的事务信息时,执行所述待执行业务对应的业务基础代码;
23.在所述待执行业务对应的业务基础代码的过程中,确定参与所述待执行业务的第二事务终端,向第二事务终端发送调用申请请求,所述调用申请中携带有所述事务信息中的事务标识信息,所述第二事务终端的数量为至少为1个;
24.在接收到所述第二事务终端发送的携带有第二操作结果的调用结束指令时,确定与所述事务信息对应事务的第一操作结果,并将所述第一操作结果和所述第二操作结果生成的通知请求提交至所述事务协调管理器;
25.在接收到所述事务协调管理器发送的通知消息时,执行与所述事务信息对应的事务执行操作。
26.本发明实施例第三方面示出了一种数据处理方法,应用于第二事务终端,所述方法包括:
27.在接收到所述第一事务终端发送的调用申请请求之后,基于所述调用申请请求执行对应的本地业务;
28.在完成所述本地业务的执行之后,开启超时等待任务,并基于所述事务标识信息向事务协调管理器发送加入目标事务组的申请指令,所述加入目标事务组的申请指令中携带有所述第二事务终端对应的日志标识信息和身份标识信息;
29.在接收所述事务协调管理器发送的事务信息时,确定与所述事务信息对应事务的第二操作结果,并基于所述第二操作结果生成的调用结束指令通知所述第一事务终端;
30.在接收到所述事务协调管理器发送的通知消息时,执行与所述事务信息对应的事务操作。
31.本发明实施例第四方面示出了一种数据处理装置,应用于事务协调管理器,所述装置包括:
32.创建单元,用于在接收到第一事务终端发送的事务创建申请请求时,基于所述事务创建申请请求中携带的业务信息创建目标事务组,所述目标事务组中包含对应的事务信
息;
33.第一发送单元,用于在确定所述目标事务组创建之后,向所述第一事务终端发送所述目标事务组的事务信息,以便所述第一事务终端在接收到所述事务信息之后,执行业务基础代码;
34.添加单元,用于在接收到第二事务终端发送的加入目标事务组的申请指令之后,将所述第二事务终端的日志标识信息和身份标识信息加入所述目标事务组,并向所述第二事务终端发送基于所述日志标识信息和身份标识信息更新后的事务信息,所述第二事务终端的数量至少为1个;
35.处理单元,用于在接收到所述第一事务终端反馈给的第一操作结果和所述第二事务终端反馈给的第二操作结果时,根据所述第一操作结果和第二操作结果,将对应的通知消息通知所述第一事务终端和所述第二事务终端,以便所述第一事务终端和所述第二事务终端进行相应的事务操作,所述事务操作包括事务执行操作和事务中止操作。
36.本发明实施例第五方面示出了一种数据处理装置,应用于第一事务终端,所述装置包括:
37.获取单元,用于获取待执行业务对应的业务信息;
38.第二发送单元,用于将基于所述业务信息生成的事务创建申请请求发送给事务协调管理器;
39.第一执行单元,用于在接收所述事务协调管理器发送的事务信息时,执行所述待执行业务对应的业务基础代码;
40.第一确定单元,用于在所述待执行业务对应的业务基础代码的过程中,确定参与所述待执行业务的第二事务终端,向第二事务终端发送调用申请请求,所述调用申请中携带有所述事务信息中的事务标识信息,所述第二事务终端的数量至少为1个;在接收到所述第二事务终端发送的携带有第二操作结果的调用结束指令时,确定与所述事务信息对应事务的第一操作结果,并将所述第一操作结果和所述第二操作结果生成的通知请求提交至所述事务协调管理器;
41.第二执行单元,用于在接收到所述事务协调管理器发送的通知消息时,执行与所述事务信息对应的事务执行操作。
42.本发明实施例第六方面示出了一种数据处理装置,应用于第二事务终端,所述装置包括:
43.第三执行单元,用于在接收到所述第一事务终端发送的调用申请请求之后,基于所述调用申请请求执行对应的本地业务;
44.第三发送单元,在完成所述本地业务的执行之后,开启超时等待任务,并基于所述事务标识信息向事务协调管理器发送加入目标事务组的申请指令,所述加入目标事务组的申请指令中携带有所述第二事务终端对应的日志标识信息和身份标识信息;
45.第二确定单元,用于在接收所述事务协调管理器发送的事务信息时,确定与所述事务信息对应事务的第二操作结果,并基于所述第二操作结果生成的调用结束指令通知所述第一事务终端;
46.第四执行单元,用于在接收到所述事务协调管理器发送的通知消息时,执行与所述事务信息对应的事务操作。
47.本发明实施例第七方面示出了一种数据处理系统,所述系统包括:事务协调管理器、第一事务终端和第二事务终端;
48.所述第一事务终端,用于获取待执行业务对应的业务信息;将基于所述业务信息生成的事务创建申请请求发送给所述事务协调管理器;在接收所述事务协调管理器发送的事务信息时,执行所述待执行业务对应的业务基础代码;在所述待执行业务对应的业务基础代码的过程中,确定参与所述待执行业务的第二事务终端,向第二事务终端发送调用申请请求,所述调用申请中携带有所述事务信息中的事务标识信息,所述第二事务终端的数量至少为1个;在接收到所述第二事务终端发送的携带有第二操作结果的调用结束指令时,确定与所述事务信息对应事务的第一操作结果,并将所述第一操作结果和所述第二操作结果生成的通知所述事务协调管理器;在接收到所述事务协调管理器发送的通知消息时,执行与所述事务信息对应的事务执行操作;
49.所述事务协调管理器,用于在接收到第一事务终端发送的事务创建申请请求时,基于所述事务创建申请请求中携带的业务信息创建目标事务组,所述目标事务组中包含对应的事务信息;在确定所述目标事务组创建之后,向所述第一事务终端发送所述目标事务组的事务信息,以便所述第一事务终端在接收到所述事务信息之后,执行业务基础代码;在接收到第二事务终端发送的加入目标事务组的申请指令之后,将所述第二事务终端的日志标识信息和身份标识信息加入所述目标事务组,并向所述第二事务终端发送基于所述日志标识信息和身份标识信息更新后的事务信息,所述第二事务终端的数量至少为1个;在接收到所述第一事务终端发送的通知请求时,根据所述通知指令中携带的第一操作结果和第二操作结果,将对应的通知消息通知所述第一事务终端和所述第二事务终端,以便所述第一事务终端和所述第二事务终端进行相应的事务操作,所述事务操作包括事务执行操作和事务中止操作;
50.所述第二事务终端,用于在接收到所述第一事务终端发送的调用申请请求之后,基于所述调用申请请求执行对应的本地业务;在完成所述本地业务的执行之后,开启超时等待任务,并基于所述事务标识信息向事务协调管理器发送加入目标事务组的申请指令,所述加入目标事务组的申请指令中携带有所述第二事务终端对应的日志标识信息和身份标识信息;在接收所述事务协调管理器发送的事务信息时,确定与所述事务信息对应事务的第二操作结果,并基于所述第二操作结果生成的调用结束指令通知所述第一事务终端;在接收到所述事务协调管理器发送的通知消息时,执行与所述事务信息对应的事务操作。
51.基于上述本发明实施例提供的一种数据处理方法、装置及系统,应用于事务协调管理器,方法包括:在接收到第一事务终端发送的事务创建申请请求时,基于事务创建申请请求中携带的业务信息创建目标事务组,目标事务组中包含对应的事务信息;在确定目标事务组创建之后,向第一事务终端发送目标事务组的事务信息,以便第一事务终端在接收到事务信息之后,执行业务基础代码;在接收到第二事务终端发送的加入目标事务组的申请指令之后,将第二事务终端的日志标识信息和身份标识信息加入目标事务组,并向第二事务终端发送基于日志标识信息和身份标识信息更新后的事务信息,第二事务终端的数量至少为1个;在接收到第一事务终端反馈给的第一操作结果和第二事务终端反馈给的第二操作结果时,根据第一操作结果和第二操作结果,将对应的通知消息通知第一事务终端和第二事务终端,以便第一事务终端和第二事务终端进行相应的事务操作,事务操作包括事
务执行操作和事务中止操作。在本发明实施例中,通过事务协调管理器协调来完成对分布式事务的统一控制,事务协调管理器基于接收到的第一事务终端反馈给的第一操作结果和第二事务终端反馈给的第二操作结果进行处理,以将对应的通知消息通知至第一事务终端和第二事务终端,以便第一事务终端和第二事务终端进行相应的事务操作。从而能够保证数据的一致性。
附图说明
52.为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
53.图1为本发明实施例示出的一种数据处理系统的结构示意图;
54.图2为本发明实施例示出的事务协调管理器、第一事务终端和第二事务终端的交互示意图;
55.图3为本发明实施例示出的事务协调管理器、第一事务终端和第二事务终端的应用架构示意图;
56.图4为本发明实施例示出的一种数据处理方法的流程示意图;
57.图5为本发明实施例示出的另一种数据处理方法的流程示意图;
58.图6为本发明实施例示出的又一种数据处理方法的流程示意图;
59.图7为本发明实施例示出的一种数据处理装置的结构示意图;
60.图8为本发明实施例示出的另一种数据处理装置的结构示意图;
61.图9为本发明实施例示出的又一种数据处理装置的结构示意图。
具体实施方式
62.下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
63.在本技术中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
64.为了方便理解,以下对本发明实施例中出现的术语进行解释说明:
65.微服务:微服务架构是一种将单应用程序作为一套小型服务开发的方法,每种应用程序都在其自己的进程中运行,并与轻量级机制(通常是http资源的api)进行通信。这些服务是围绕业务功能构建的,可以通过全自动部署机制进行独立部署。这些服务的集中化管理已经是最少的,它们可以用不同的编程语言编写,并使用不同的数据存储技术。
66.事务:事务由一组操作构成,这组操作能够全部正确执行,如果这一组操作中的任
意一个步骤发生错误,那么就需要回滚之前已经完成的操作。也就是同一个事务中的所有操作,要么全都正确执行,要么全都不要执行。事务提供一种机制将一个活动涉及的所有操作纳入到一个不可分割的执行单元,组成事务的所有操作只有在所有操作均能正常执行的情况下方能提交,只要其中任一操作执行失败,都将导致整个事务的回滚。事务提供一种“要么什么都不做,要么做全部操作(all or nothing)”的机制。
67.分布式事务:分布式事务就是在分布式环境下运行的事务,对于分布式事务来说,事务的每个操作步骤是运行在不同机器上的服务的。分布式事务处理的关键是必须有一种方法可以知道事务在任何地方所做的所有动作,提交或回滚事务的决定必须产生统一的结果(全部提交或全部回滚)。
68.两阶段提交:二阶段提交(two-phase commit)是指,在计算机网络和数据库领域内,为了使基于分布式系统架构下的所有节点在进行事务提交时保持一致性而设计的一种算法。
69.在本发明实施例中,在微服务架构下,通过事务协调管理器协调来完成对分布式事务的统一控制,事务协调管理器基于接收到的第一事务终端反馈给的第一操作结果和第二事务终端反馈给的第二操作结果进行处理,以将对应的通知消息通知至第一事务终端和第二事务终端,以便第一事务终端和第二事务终端进行相应的事务操作。从而能够保证数据的一致性。
70.参见图1,为本发明实施例示出的一种数据处理系统,系统包括事务协调管理器(transactionmanager,tm)10、第一事务终端(transactionclient,tc)20和第二事务终端(transactionclient,tc)30。
71.tc,即第一事务终端20和第二事务终端30是对资源做代理控制锁定以及配合tm10对事务做提交回滚。
72.tm10作为分布式事务的控制方,用于控制整个事务保持一致性的控制节点,即第一事务终端20和第二事务终端30,也记录事务中可能出现的特殊情况与各阶段的操作日志。
73.第二事务终端(transactionclient,tc)30的数量至少为1个。
74.在本发明实施例中,事务控制原理是由第一事务终端20和第二事务终端30下的代理连接池,即db连接池与tm10的协调配合完成的事务协调控制。第一事务终端20和第二事务终端30的代理连接池实现了javax.sql.datasource接口,第一事务终端20和第二事务终端30在提交关闭以后tc的db连接池将执行假关闭操作,等待tm协调完成事务以后在关闭连接。
75.第一事务终端20和第二事务终端30对资源做代理控制锁定以及配合事务协调管理器对事务做提交回滚。通过扩展java的数据源接口javax.sql.datasource,以确定新的接口关闭连接池方法,并且要对db代理连接池进行优化。
76.第一事务终端20和第二事务终端30可以实现超时处理机制、智能识别创建不同的连接处理机制、及连接重用机制等机制。
77.其中,由于任何通讯都有最大超时限制,因此当第一事务终端20和第二事务终端30在等待通知的状态下也有最大超时限制,因此存在超时处理机制。超时处理机制用于在确定超过时间限制之后,第一事务终端20和第二事务终端30将先确认事务状态,然后再决
定执行提交或者回滚操作,主要为了给最大资源占用时间加上限制。
78.智能识别创建不同的连接处理机制,用于对只读操作、非事务操作将不开启代理功能,返回本地连接对象,对于补偿事务的启动方将开启回滚连接对象,执行完业务以后马上回滚事务。
79.连接重用机制,用于当第一事务终端20和第二事务终端30在同一次事务下被重复执行时,连接资源会被重用,提高连接的使用率。
80.事务协调管理器30可实现创建目标事务组、添加目标事务组、关闭目标事务组、通知机制、重试机制、切换事务通知机制、及响应事务机制等机制。
81.其中,创建目标事务组是指在第一事务终端20开始执行待执行业务对应的业务基础代码之前先调用事务协调管理器创建目标事务组对象,然后拿到事务标示groupid的过程。
82.添加目标事务组是指第二事务终端30在执行完本地业务之后,将与第二事务终端30相关的事务信息添加给事务协调管理器10。
83.关闭目标事务组是指在第一事务终端20执行完业务基础代码,且将第一事务终端20与之对应的第一操作结果通知给事务协调管理器10。当执行完关闭目标事务组的方法之后,事务协调管理器10将根据第一操作结果和第二操作结果来通知相应的参与模块,即第一事务终端20和第二事务终端30进行提交或回滚操作。
84.通知机制用于在事务协调管理器10接受到第一事务终端20发送的通知请求后,开始遍历该目标事务组下的所有的第二事务终端30,然后逐个通知第二事务终端30对应的通知信息。
85.可选的,通知第二事务终端30对应的通知信息的具体过程为:若在确认任意一第二事务终端30执行成功之后,可标记状态再继续通知其他的第二事务终端30,直至所有的第二事务终端30执行完成。
86.若第二事务终端30不响应通知信息对应的数据,事务协调管理器10则会进行重试通知机制,重试通知机制,用于在确定第二事务终端30不响应时,则会寻找第二事务终端30中的负载模块进行通知,若负载模块通知成功则在确认任意一第二事务终端30执行成功之后,可标记状态然后继续遍历其他的第二事务终端30进行通知。若负载模块由于锁原因导致提交失败,则事务协调管理器10将继续通知,并记录对应第二事务终端30标识,直到尝试超过预设超时时间,若到预设超时时间还未能通知第二事务终端30则不再尝试,标记为待补偿状态,并通知运维系统,再继续通知其他未通知的第二事务终端30。
87.通知机制还用于:在通知完成所有的事务以后则将通知第一事务终端20最终的事务通知结果。通知结果是提交或者是回滚也会影响到第一事务终端最终操作,第一事务终端20事务执行完成以后则需反馈给事务协调管理器10提交完成消息。
88.切换事务通知机制,用于在重试机制通知事务2次不成功则会转换至其他负载模块。以通知第二事务终端30,并要求第二事务终端30对事务做对应事务操作,若在可以操作成功后,将可正常响应的信息发送给事务协调管理器10。事务协调管理器10也将状态标记为已通知,然后再继续通知其他第二事务终端30。若通知失败再重复上述的循环重试机制。
89.响应事务机制,用于第一事务终端20完成了业务以后则需要响应消息给事务协调管理器10。若事务协调管理器10始终接受不到第一事务终端20的成功提交消息也会记录补
偿,并通知运维系统,但作为第一事务终端20则只需要发送完消息以后就可以直接响应数据给第二事务终端30。
90.需要说明的是,同样若事务协调管理器10未接收不到响应,也会向第一事务终端20的其他负载模块询问情况,操作机制与第二事务终端30一样,可相互参见。
91.可选的,数据处理系统还包括数据库40。第一事务终端20和第二事务终端30在事务提交操作,以将与之对应的数据存储至数据库40。
92.基于上述本发明实施例示出的应用架构,具体实现数据处理如下:
93.第一事务终端20,用于获取业务模块中的待执行业务对应的业务信息;将基于业务信息生成的事务创建申请请求发送给事务协调管理器10。在接收事务协调管理器10发送的事务信息时,执行待执行业务对应的业务基础代码;在待执行业务对应的业务基础代码的过程中,确定参与待执行业务的第二事务终端30,向第二事务终端30发送调用申请请求,调用申请中携带有事务信息中的事务标识信息;在接收到第二事务终端30发送的携带有第二操作结果的调用结束指令时,确定与事务信息对应事务的第一操作结果,并将第一操作结果和第二操作结果生成的通知事务协调管理器10;在接收到事务协调管理器10发送的通知消息时,执行与事务信息对应的事务执行操作。
94.需要说明的是,第二事务终端30的数量为多个。
95.事务协调管理器10,用于在接收到第一事务终端20发送的事务创建申请请求时,基于事务创建申请请求中携带的业务信息创建目标事务组,目标事务组中包含对应的事务信息;在确定目标事务组创建之后,向第一事务终端发送目标事务组的事务信息,以便第一事务终端20在接收到事务信息之后,执行业务基础代码;在接收到第二事务终端30发送的加入目标事务组的申请指令之后,将第二事务终端30的日志标识信息和身份标识信息加入目标事务组,并向第二事务终端30发送基于日志标识信息和身份标识信息更新后的事务信息,第二事务终端30的数量至少为1个;在接收到第一事务终端20发送的通知请求时,根据通知指令中携带的第一操作结果和第二操作结果,将对应的通知消息通知第一事务终端20和第二事务终端30,以便第一事务终端20和第二事务终端30进行相应的事务操作,事务操作包括事务执行操作和事务中止操作。
96.第二事务终端30,用于在接收到第一事务终端20发送的调用申请请求之后,基于调用申请请求执行对应的本地业务;在完成本地业务的执行之后,开启超时等待任务,并基于事务标识信息向事务协调管理器10发送加入目标事务组的申请指令,加入目标事务组的申请指令中携带有第二事务终端30对应的日志标识信息和身份标识信息;在接收事务协调管理器10发送的事务信息时,确定与事务信息对应事务的第二操作结果,并基于第二操作结果生成的调用结束指令通知第一事务20;在接收到事务协调管理器10发送的通知消息时,执行与事务信息对应的事务操作。
97.在本发明实施例中,通过事务协调管理器协调来完成对分布式事务的统一控制,事务协调管理器基于接收到的第一事务终端反馈给的第一操作结果和第二事务终端反馈给的第二操作结果进行处理,以将对应的通知消息通知至第一事务终端和第二事务终端,以便第一事务终端和第二事务终端进行相应的事务操作。从而能够保证数据的一致性。
98.基于上述本发明实施例示出的数据处理系统,本发明实施例还对应公开了事务协调管理器、第一事务终端和第二事务终端的交互示意图,该方法包括:
99.s201:第一事务终端获取待执行业务对应的业务信息。
100.s201的具体内容:第一事务终端,即事务发起方在开始执行业务,需要虎扑去待执行业务对应的业务信息。
101.需要说明的是是,业务信息包括需要执行业务的参与方信息、全局事务id标识、及业务基础代码等。
102.s202:第一事务终端将基于业务信息生成的事务创建申请请求发送给事务协调管理器。
103.s202的具体内容:事务发起方在开始执行业务之前将先调用tm通知创建目标事务组。
104.s203:事务协调管理器基于事务创建申请请求中携带的业务信息创建目标事务组。
105.在步骤s203中,目标事务组中包含对应的事务信息。
106.s203的具体内容:事务协调管理器将事务创建申请请求中携带的业务信息所涉及的所有操作纳入到一个不可分割的执行单元,以生成目标事务组。
107.需要说明的是,目标事务组中包括相关的事务信息。
108.s204:事务协调管理器在确定目标事务组创建之后,向第一事务终端发送目标事务组的事务信息。
109.s204的具体内容:事务协调管理器将目标事务组相关的事务信息响应给第一事务终端。
110.s205:第一事务终端执行待执行业务对应的业务基础代码。
111.s205的具体内容:第一事务终端在确定到事务协调管理器创建的事务消息之后,第一事务终端,即事务发起方开始执行自己的业务代码,即业务基础代码。
112.s206:第一事务终端在待执行业务对应的业务基础代码的过程中,确定参与待执行业务的第二事务终端,向第二事务终端发送调用申请请求。
113.在步骤s206中,调用申请中携带有事务信息中的事务标识信息,第二事务终端的数量至少为1个。
114.s206的具体内容:第一事务终端在执行业务的过程中,先确定会执行待处理业务中服务的参与方,即第二事务终端;若确定第二事务终端的数量为1个时,直接对该第二事务终端进行调用,在调用时会将事务协调管理器创建的事务标识信息传递到第二事务终端。若确定第二事务终端的数量为多个时,根据待处理业务确定各个参与方,即第二事务终端的调用顺序,依次对各个参与方进行调用,在调用时会将事务协调管理器创建的事务标识信息传递到参与方,即向第二事务终端发送携带有事务标识信息的调用申请请求。
115.需要说明的是,第二事务调用顺序是根据待处理业务确定的。
116.可以理解的是,根据待处理业务确定各个参与方,即第二事务终端的调用顺序,依次对各个参与方进行调用的具体过程为:根据调用顺序,先对第一个第二事务终端进行调用,以便第二事务终端在完成本地业务的执行之后,将以被调用的响应指令反馈给该第一事务终端;第一事务终端在接收到第一个第二事务终端反馈给的响应指令之后,向第二个第二事务终端进行调用,依次类推,直到第一事务终端均完成对于所有的第二事务终端进行调用。
117.s207:第二事务终端基于调用申请请求执行对应的本地业务。
118.s207的具体内容:当参与方,即第二事务终端接受到来自第一事务终端的请求之后开始执行本地业务。
119.需要说明的是,本地业务是指第二事务终端自身需要执行的业务启动服务。
120.s208:第二事务终端在完成本地业务的执行之后,开启超时等待任务,并基于事务标识信息向事务协调管理器发送加入目标事务组的申请指令。
121.在步骤s208中,加入目标事务组的申请指令中携带有第二事务终端对应的日志标识信息和身份标识信息。
122.s208的具体内容:由于在执行完本地业务后不会立即对本次的待处理业务进行处理。第二事务终端在完成本地业务的执行之后,前会先开启超时等待任务,请求事务协调管理器加入到目标事务组中,提交的主要信息有第二事务终端本地的日志标记信息与身份标识信息,
123.可选的,第二事务终端在完成本地业务的执行时,同时向第一事务终端反馈给的响应指令。
124.s209:事务协调管理器将第二事务终端的日志标识信息和身份标识信息加入目标事务组,并向第二事务终端发送基于日志标识信息和身份标识信息更新后的事务信息。
125.在步骤s209中,第二事务终端的数量至少为1个。
126.需要说明的是,事务协调管理器将第二事务终端的日志标识信息和身份标识信息加入目标事务组,也就是说,将第二事务终端加入目标事务组。
127.s210:第二事务终端确定与事务信息对应事务的第二操作结果,并将基于第二操作结果生成的调用结束指令通知第一事务终端。
128.s210的具体内容:第二事务终端此时进行两阶段提交中的第一阶段准备阶段,第二事务终端可以确定自身相关事务执行成功还是失败,并将成功或失败的第二操作结果生成调用结束指令,并通知第一事务终端。
129.s211:第一事务终端确定与事务信息对应事务的第一操作结果,并将第一操作结果和第二操作结果生成的通知请求提交至事务协调管理器。
130.s211的具体内容:第一事务终端此时进行两阶段提交中的第一阶段准备阶段,第一事务终端可以确定自身相关事务执行成功还是失败,以生成第一操作结果;并将第一操作结果和第二操作结果生成的通知请求提交至事务协调管理器。
131.s212:事务协调管理器根据通知指令中携带的第一操作结果和第二操作结果,将对应的通知消息通知第一事务终端和第二事务终端。
132.需要说明的是,具体实现步骤s212的过程中,包括以下步骤:
133.步骤s11:在确定第一操作结果和第二操作结果均为操作成功结果时,将对应的通知消息发送给第二事务终端,以便第二事务终端进行相应的事务执行操作。
134.步骤s12:在接收到第二事务终端反馈给的事务操作完成信息之后,将对应的通知消息发送给第一事务终端,以便第一事务终端进行相应的事务执行操作。
135.在具体实现步骤s11和步骤s12的过程中,事务协调管理器统一掌控所有节点(称作参与者)的操作结果,在确定所有的第一操作结果和第二操作结果均为操作成功时,在确定第二事务终端的数量为1个时,将对应的通知消息发送给第二事务终端,以便第二事务终
端进行相应的事务操作;在确定第二事务终端的数量为多个时,遍历所有的第二事务终端,按照预设规则逐个将对应的通知消息发送给第二事务终端,以便第二事务终端进行相应的事务操作。
136.需要说明的是,预设规则是指调用顺序的倒序。
137.可以理解的是,按照预设规则逐个将对应的通知消息发送给第二事务终端,以便第二事务终端进行相应的事务操作的具体实现过程为:根据调用顺序的倒序,先将通知消息发送给倒数第一个第二事务终端发送携带有执行事务提交操作指令的通知消息,以便第二事务终端根据通知消息执行相应的事务的执行操作即提交操作,并将执行结束指令反馈给该事务协调管理器;事务协调管理器在接收到最后一个第二事务终端反馈给的执行结束指令时,向倒数第二个第二事务终端发送通知消息,依次类推,直到接收到倒数最后一个第二事务终端反馈给的执行结束指令;向第一事务终端发送通知信息,以便第一事务终端进行相应的事务执行操作。
138.步骤s13:在确定第一操作结果和第二操作结果中存在操作异常结果时,将对应的通知消息发送给第一事务终端和第二事务终端,以便第一事务终端和第二事务终端进行事务中止操作。
139.在具体实现步骤s13的过程中,事务协调管理器统一掌控所有节点(称作参与者)的操作结果,在确定所有的第一操作结果和第二操作结果存在操作异常结果时,根据调用顺序的倒序依次将携带有事务中止操作指令的通知消息反馈给第二事务终端,以便第二事务终端根据通知消息执行相应的事务执行操作,在接收到最后一个第二事务终端反馈给的事务操作完成信息之后,将对应的通知消息发送给第一事务终端,以便第一事务终端进行相应的事务执行操作。
140.需要说明的是,具体实现步骤s13的过程与上述步骤s11至步骤s12的具体实现过程相同,可相互参见。
141.可选的,事务协调管理器在向第一事务终端或第二事务终端发送通知消息时,若第一事务终端和第二事务终端2次没有被接收到通知信息时,则会转换至其他负载模块,以通过其他负载模块通知第二事务终端。
142.可选的,若事务协调管理器始终接受不到第一事务终端的成功提交消息也会记录补偿,并通知运维系统。
143.需要说明的是,若事务协调管理器未接收不到响应,也会向第一事务终端的其他负载模块询问情况,与第二事务终端一样,可相互参见。
144.s213:第二事务终端执行与事务信息对应的事务操作。
145.在具体实现步骤s213的过程中,第二事务终端此时进行两阶段提交中的第二阶段,即提交阶段,若接收到携带有事务中止操作指令的通知消息时,执行事务中止操作;若接收到携带有事务提交操作指令的通知消息时,执行对应的事务,并对进行事务提交操作。
146.s214:第一事务终端执行与事务信息对应的事务执行操作。
147.在步骤s214的具体实现中,第一事务终端此时进行两阶段提交中的第二阶段,即提交阶段,第一事务终端若接收到携带有事务中止操作指令的通知消息时,执行事务中止操作;若接收到携带有事务提交操作指令的通知消息时,执行对应的事务,并对进行事务提交操作。
148.可选的,在第一事务终端和第二事务终端进行事务中止操作之后,控制第一事务终端和第二事务终端进行事务回滚。
149.在本发明实施例中,通过事务协调管理器协调来完成对分布式事务的统一控制,事务协调管理器基于接收到的第一事务终端反馈给的第一操作结果和第二事务终端反馈给的第二操作结果进行处理,以将对应的通知消息通知至第一事务终端和第二事务终端,以便第一事务终端和第二事务终端进行相应的事务操作。从而能够保证数据的一致性。
150.为了更好的理解上述本发明实施例示出的数据处理方法,下面结合一个应用实例进行解释说明,如图3所示。
151.第一事务终端q获取待执行业务a对应的业务信息,并将基于业务信息生成的事务创建申请请求发送给事务协调管理器。
152.事务协调管理器基于事务创建申请请求中携带的业务信息创建目标事务组,并在确定目标事务组创建之后,向第一事务终端发送目标事务组的事务信息response。
153.第一事务终端q执行待执行业务对应的业务基础代码。并在待执行业务对应的业务基础代码的过程中,确定参与待执行业务的第二事务终端a和第二事务终端b;根据待执行业务a确定第二事务终端a和第二事务终端b的调用顺序;根据调用顺序,先对第二事务终端a发送请求模块a,以进行调用。
154.第二事务终端a在完成本地业务的执行之后,将以被调用的响应指令反馈给response给该第一事务终端q。
155.第一事务终端q在接收到第二事务终端a反馈给的响应指令之后,向第二事务终端b发送请求模块b,以进行调用。
156.第二事务终端b在完成本地业务的执行之后,将以被调用的响应指令反馈给response给该第一事务终端q。
157.第二事务终端a和第二事务终端b基于调用申请请求执行对应的本地业务。第二事务终端a和第二事务终端b在完成本地业务的执行之后,开启超时等待任务,并基于事务标识信息向事务协调管理器发送加入目标事务组的申请指令。
158.事务协调管理器将第二事务终端a和第二事务终端b的日志标识信息和身份标识信息分别加入目标事务组,并向第二事务终端a和第二事务终端b发送基于日志标识信息和身份标识信息更新后的事务信息。
159.第二事务终端a和第二事务终端b确定与事务信息对应事务的第二操作结果,并将基于第二操作结果生成的调用结束指令通知第一事务终端q。
160.第一事务终端q确定与事务信息对应事务的第一操作结果,并将第一操作结果和两个第二操作结果生成的通知请求提交至事务协调管理器,以进行提交事务。
161.事务协调管理器根据通知指令中携带的第一操作结果和第二操作结果,在确定第一操作结果和第二操作结果均为操作成功结果时,根据调用顺序的倒序,先将通知消息发送给倒数第二事务终端b发送携带有执行事务提交操作指令的通知消息,即对第二事务终端b进行通知事务。
162.第二事务终端b根据通知消息执行相应的事务的执行操作即提交操作,并将执行结束指令反馈给该事务协调管理器。
163.事务协调管理器在接收到第二事务终端b反馈给的执行结束指令时,向倒数第二
个第二事务终端a发送通知消息,即对第二事务终端a进行通知事务。
164.第二事务终端b根据通知消息执行相应的事务的执行操作即提交操作,并将执行结束指令反馈给该事务协调管理器。
165.事务协调管理器在接收到第二事务终端a反馈给的执行结束指令时,向第一事务终端q发送通知消息。
166.第一事务终端q执行与事务信息对应的事务执行操作。
167.在本发明实施例中,通过事务协调管理器协调来完成对分布式事务的统一控制,事务协调管理器基于接收到的第一事务终端反馈给的第一操作结果和第二事务终端反馈给的第二操作结果进行处理,以将对应的通知消息通知至第一事务终端和第二事务终端,以便第一事务终端和第二事务终端进行相应的事务操作。从而能够保证数据的一致性。
168.基于上述本发明公开的事务协调管理器、第一事务终端和第二事务终端的交互示意图,事务协调管理器实现数据处理方法的过程,如图4所示,为本发明实施例提供的一种数据处理方法的流程示意图,事务协调管理器具体实现数据处理系统的过程包括以下步骤:
169.步骤s401:在接收到第一事务终端发送的事务创建申请请求时,基于事务创建申请请求中携带的业务信息创建目标事务组。
170.需要说明的是,目标事务组中包含对应的事务信息。
171.步骤s402:在确定目标事务组创建之后,向第一事务终端发送目标事务组的事务信息,以便第一事务终端在接收到事务信息之后,执行业务基础代码。
172.步骤s403:在接收到第二事务终端发送的加入目标事务组的申请指令之后,将第二事务终端的日志标识信息和身份标识信息加入目标事务组,并向第二事务终端发送基于日志标识信息和身份标识信息更新后的事务信息。
173.需要说明的是,第二事务终端的数量至少为1个。
174.步骤s404:在接收到第一事务终端发送的通知请求时,根据通知指令中携带的第一操作结果和第二操作结果,将对应的通知消息通知第一事务终端和第二事务终端,以便第一事务终端和第二事务终端进行相应的事务操作,事务操作包括事务执行操作和事务中止操作。
175.需要说明的是,步骤s401至步骤s404的具体实现过程与上述步骤s201至步骤s214的具体实现过程,对此本发明实施例不加以限制。
176.在本发明实施例中,通过事务协调管理器协调来完成对分布式事务的统一控制,事务协调管理器基于接收到的第一事务终端反馈给的第一操作结果和第二事务终端反馈给的第二操作结果进行处理,以将对应的通知消息通知至第一事务终端和第二事务终端,以便第一事务终端和第二事务终端进行相应的事务操作。从而能够保证数据的一致性。
177.基于上述本发明公开的事务协调管理器、第一事务终端和第二事务终端的交互示意图,第一事务终端实现数据处理方法的过程,如图5所示,为本发明实施例提供的一种数据处理方法的流程示意图,第一事务终端具体实现数据处理系统的过程包括以下步骤:
178.步骤s501:获取待执行业务对应的业务信息。
179.步骤s502:将基于业务信息生成的事务创建申请请求发送给事务协调管理器。
180.步骤s503:在接收事务协调管理器发送的事务信息时,执行待执行业务对应的业
务基础代码。
181.步骤s504:在待执行业务对应的业务基础代码的过程中,确定参与待执行业务的第二事务终端,向第二事务终端发送调用申请请求。
182.需要说明的是,调用申请中携带有事务信息中的事务标识信息,第二事务终端的数量为至少为1个。
183.步骤s505:在接收到第二事务终端发送的携带有第二操作结果的调用结束指令时,确定与事务信息对应事务的第一操作结果,并将第一操作结果和第二操作结果生成的通知请求提交至事务协调管理器。
184.步骤s506:在接收到事务协调管理器发送的通知消息时,执行与事务信息对应的事务执行操作。
185.需要说明的是,步骤s501至步骤s506的具体实现过程与上述步骤s201至步骤s214的具体实现过程,对此本发明实施例不加以限制。
186.在本发明实施例中,第一事务终端获取待执行业务对应的业务信息;将基于业务信息生成的事务创建申请请求发送给事务协调管理器;在接收事务协调管理器发送的事务信息时,执行待执行业务对应的业务基础代码;在待执行业务对应的业务基础代码的过程中,确定参与待执行业务的第二事务终端,向第二事务终端发送调用申请请求;在接收到第二事务终端发送的携带有第二操作结果的调用结束指令时,确定与事务信息对应事务的第一操作结果,并将第一操作结果和第二操作结果生成的通知请求提交至事务协调管理器;在接收到事务协调管理器发送的通知消息时,执行与事务信息对应的事务执行操作。从而能够保证数据的一致性。
187.基于上述本发明公开的事务协调管理器、第一事务终端和第二事务终端的交互示意图,第二事务终端实现数据处理方法的过程,如图6所示,为本发明实施例提供的一种数据处理方法的流程示意图,第二事务终端具体实现数据处理系统的过程包括以下步骤:
188.步骤s601:在接收到第一事务终端发送的调用申请请求之后,基于调用申请请求执行对应的本地业务。
189.步骤s602:在完成本地业务的执行之后,开启超时等待任务,并基于事务标识信息向事务协调管理器发送加入目标事务组的申请指令。
190.需要说明的是,加入目标事务组的申请指令中携带有第二事务终端对应的日志标识信息和身份标识信息。
191.步骤s603:在接收事务协调管理器发送的事务信息时,确定与事务信息对应事务的第二操作结果,并基于第二操作结果生成的调用结束指令通知第一事务终端。
192.步骤s604:在接收到事务协调管理器发送的通知消息时,执行与事务信息对应的事务操作。
193.需要说明的是,步骤s601至步骤s604的具体实现过程与上述步骤s201至步骤s214的具体实现过程,对此本发明实施例不加以限制。
194.在本发明实施例中,第二事务终端在接收到第一事务终端发送的调用申请请求之后,基于调用申请请求执行对应的本地业务;在完成本地业务的执行之后,开启超时等待任务,并基于事务标识信息向事务协调管理器发送加入目标事务组的申请指令;在接收事务协调管理器发送的事务信息时,确定与事务信息对应事务的第二操作结果,并基于第二操
作结果生成的调用结束指令通知第一事务终端;在接收到事务协调管理器发送的通知消息时,执行与事务信息对应的事务操作。从而能够保证数据的一致性。
195.基于上述本发明实施例示出的数据处理方法,相应的,本发明实施例示出了一种数据处理装置,应用与事务协调管理器,如图7所示,为本发明实施例示出的一种数据处理装置的结构示意图,该装置包括:
196.创建单元701,用于在接收到第一事务终端发送的事务创建申请请求时,基于事务创建申请请求中携带的业务信息创建目标事务组,目标事务组中包含对应的事务信息。
197.第一发送单元702,用于在确定目标事务组创建之后,向第一事务终端发送目标事务组的事务信息,以便第一事务终端在接收到事务信息之后,执行业务基础代码。
198.添加单元703,用于在接收到第二事务终端发送的加入目标事务组的申请指令之后,将第二事务终端的日志标识信息和身份标识信息加入目标事务组,并向第二事务终端发送基于日志标识信息和身份标识信息更新后的事务信息,第二事务终端的数量至少为1个。
199.处理单元704,用于在接收到第一事务终端反馈给的第一操作结果和第二事务终端反馈给的第二操作结果时,根据第一操作结果和第二操作结果,将对应的通知消息通知第一事务终端和第二事务终端,以便第一事务终端和第二事务终端进行相应的事务操作,事务操作包括事务执行操作和事务中止操作。
200.需要说明的是,上述本发明实施例公开的应用系统的数据处理装置中的各个模块具体的原理和执行过程,可参见上述本发明实施的事务协调管理器、第一事务终端和第二事务终端的交互时序中的相应部分,这里不再进行赘述。
201.在本发明实施例中,通过事务协调管理器协调来完成对分布式事务的统一控制,事务协调管理器基于接收到的第一事务终端反馈给的第一操作结果和第二事务终端反馈给的第二操作结果进行处理,以将对应的通知消息通知至第一事务终端和第二事务终端,以便第一事务终端和第二事务终端进行相应的事务操作。从而能够保证数据的一致性。
202.基于上述本发明实施例示出的数据处理方法,相应的,本发明实施例示出了一种数据处理装置,应用与第一事务终端,如图8所示,为本发明实施例示出的一种数据处理装置的结构示意图,该装置包括:
203.获取单元801,用于获取待执行业务对应的业务信息。
204.第二发送单元802,用于将基于业务信息生成的事务创建申请请求发送给事务协调管理器。
205.第一执行单元803,用于在接收事务协调管理器发送的事务信息时,执行待执行业务对应的业务基础代码。
206.第一确定单元804,用于在待执行业务对应的业务基础代码的过程中,确定参与待执行业务的第二事务终端,向第二事务终端发送调用申请请求,调用申请中携带有事务信息中的事务标识信息,第二事务终端的数量至少为1个;在接收到第二事务终端发送的携带有第二操作结果的调用结束指令时,确定与事务信息对应事务的第一操作结果,并将第一操作结果和第二操作结果生成的通知请求提交至事务协调管理器。
207.第二执行单元805,用于在接收到事务协调管理器发送的通知消息时,执行与事务信息对应的事务执行操作。
208.需要说明的是,上述本发明实施例公开的应用系统的数据处理装置中的各个模块具体的原理和执行过程,可参见上述本发明实施的事务协调管理器、第一事务终端和第二事务终端的交互时序中的相应部分,这里不再进行赘述。
209.在本发明实施例中,第一事务终端获取待执行业务对应的业务信息;将基于业务信息生成的事务创建申请请求发送给事务协调管理器;在接收事务协调管理器发送的事务信息时,执行待执行业务对应的业务基础代码;在待执行业务对应的业务基础代码的过程中,确定参与待执行业务的第二事务终端,向第二事务终端发送调用申请请求;在接收到第二事务终端发送的携带有第二操作结果的调用结束指令时,确定与事务信息对应事务的第一操作结果,并将第一操作结果和第二操作结果生成的通知请求提交至事务协调管理器;在接收到事务协调管理器发送的通知消息时,执行与事务信息对应的事务执行操作。从而能够保证数据的一致性。
210.基于上述本发明实施例示出的数据处理方法,相应的,本发明实施例示出了一种数据处理装置,应用与第二事务终端,如图9所示,为本发明实施例示出的一种数据处理装置的结构示意图,该装置包括:
211.第三执行单元901,用于在接收到第一事务终端发送的调用申请请求之后,基于调用申请请求执行对应的本地业务。
212.第三发送单元902,在完成本地业务的执行之后,开启超时等待任务,并基于事务标识信息向事务协调管理器发送加入目标事务组的申请指令,加入目标事务组的申请指令中携带有第二事务终端对应的日志标识信息和身份标识信息。
213.第二确定单元903,用于在接收事务协调管理器发送的事务信息时,确定与事务信息对应事务的第二操作结果,并基于第二操作结果生成的调用结束指令通知第一事务终端。
214.第四执行单元904,用于在接收到事务协调管理器发送的通知消息时,执行与事务信息对应的事务操作。
215.需要说明的是,上述本发明实施例公开的应用系统的数据处理装置中的各个模块具体的原理和执行过程,可参见上述本发明实施的事务协调管理器、第一事务终端和第二事务终端的交互时序中的相应部分,这里不再进行赘述。
216.在本发明实施例中,第二事务终端在接收到第一事务终端发送的调用申请请求之后,基于调用申请请求执行对应的本地业务;在完成本地业务的执行之后,开启超时等待任务,并基于事务标识信息向事务协调管理器发送加入目标事务组的申请指令;在接收事务协调管理器发送的事务信息时,确定与事务信息对应事务的第二操作结果,并基于第二操作结果生成的调用结束指令通知第一事务终端;在接收到事务协调管理器发送的通知消息时,执行与事务信息对应的事务操作。从而能够保证数据的一致性。
217.本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统或系统实施例而言,由于其基本相似于方法实施例,所以描述得比较简单,相关之处参见方法实施例的部分说明即可。以上所描述的系统及系统实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根
据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
218.专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
219.对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献