事务的处理方法、处理装置、电子设备和可读存储介质与流程

文档序号:33503247发布日期:2023-03-17 22:44阅读:42来源:国知局
事务的处理方法、处理装置、电子设备和可读存储介质与流程
confirm-cancel三个接口,同时由于银行系统对于数据的高要求性,一般会在正交易基础上设置逆向操作的反交易,以在正交易失败时采取补救流程回滚至交易前的状态,就需要实现正反交易的六个接口,对于银行系统的业务改造量较大。


技术实现要素:

13.有鉴于此,本技术提供了一种事务的处理方法、处理装置、处理装置、电子设备和可读存储介质,如下:
14.一种事务的处理方法,包括:
15.基于获得目标事务提交请求,确定所述目标事务的类型,所述类型包括第一类型和第二类型,第一类型事务和第二类型事务是逆向交易;
16.确定所述提交请求对应的至少两个目标资源服务;
17.基于所述目标事务的类型调用资源管理器中与所述至少两个目标资源服务对应的目标尝试接口,以通知所述至少两个目标资源服务准备提交事务,所述目标尝试接口包括第一类型交易对应的第一尝试接口和第二类型交易对应的第二尝试接口;
18.基于所述目标事务的类型是第一类型,若所述至少两个目标资源服务反馈调用成功,控制所述资源管理器调用第一复用接口,以使得通过所述第一复用接口提交所述目标事务;若所述至少两个目标资源服务反馈调用失败,控制所述资源管理器调用第二复用接口,以使得通过所述第二复用接口回滚所述目标事务;
19.基于所述目标事务的类型是第二类型,若所述至少两个目标资源服务反馈调用成功,控制所述资源管理器调用第二复用接口,以使得通过所述第二复用接口提交所述目标事务;若所述至少两个目标资源服务反馈调用失败,控制所述资源管理器调用第一复用接口,以使得通过所述第一复用接口回滚所述目标事务。
20.可选的,上述的方法,基于获得目标事务提交请求,确定所述目标事务的类型,包括:
21.接收目标事务提交请求;
22.为所述目标事务分配事务标识;
23.确定所述目标事务的类型是第一类型。
24.可选的,上述的方法,基于获得目标事务提交请求,确定所述目标事务的类型,包括:
25.基于第一事务失败,获得所述第一事务的事务标识;
26.生成目标事务的提交请求,所述目标事务是与所述第一事务逆向的交易,所述目标事务的提交请求中包含有所述第一事务的事务标识;
27.确定所述目标事务的类型是第二类型。
28.可选的,上述的方法,所述基于所述目标事务的类型调用资源管理器中与所述至少两个目标资源服务对应的目标尝试接口,包括:
29.基于所述目标事务的类型向资源管理器申请所述至少两个目标资源服务,以使得所述资源管理器确定所述至少两个目标资源服务对应的目标尝试接口;
30.调用所述资源管理器反馈的所述目标尝试接口。
31.可选的,上述的方法,判断所述至少两个目标资源服务反馈调用成功,包括:
32.接收到任意资源服务反馈的调用结果信息;
33.基于所述调用结果信息中的事务标识,确定所述调用结果信息对应的事务;
34.统计所述目标事务的调用结果;
35.若目标事务的全部调用结果均成功,确定所述至少两个目标资源服务反馈调用成功;
36.若目标事务的全部调用结果中至少一个失败,确定所述至少两个目标资源服务反馈调用失败。
37.可选的,上述的方法,还包括:
38.接收所述至少两个目标资源服务在提交所述目标事务后反馈的提交成功消息。
39.可选的,上述的方法,还包括:
40.接收所述至少两个目标资源服务在回滚所述目标事务后反馈的回滚成功消息。
41.一种事务的处理装置,包括:
42.第一确定模块,用于基于获得目标事务提交请求,确定所述目标事务的类型,所述类型包括第一类型和第二类型,第一类型事务和第二类型事务是逆向交易;
43.第二确定模块,用于确定所述提交请求对应的至少两个目标资源服务;
44.调用模块,用于基于所述目标事务的类型调用资源管理器中与所述至少两个目标资源服务对应的目标尝试接口,以通知所述至少两个目标资源服务准备提交事务,所述目标尝试接口包括第一类型交易对应的第一尝试接口和第二类型交易对应的第二尝试接口;
45.第一控制模块,用于基于所述目标事务的类型是第一类型,若所述至少两个目标资源服务反馈调用成功,控制所述资源管理器调用第一复用接口,以使得通过所述第一复用接口提交所述目标事务;若所述至少两个目标资源服务反馈调用失败,控制所述资源管理器调用第二复用接口,以使得通过所述第二复用接口回滚所述目标事务;
46.第二控制模块,用于基于所述目标事务的类型是第二类型,若所述至少两个目标资源服务反馈调用成功,控制所述资源管理器调用第二复用接口,以使得通过所述第二复用接口提交所述目标事务;若所述至少两个目标资源服务反馈调用失败,控制所述资源管理器调用第一复用接口,以使得通过所述第一复用接口回滚所述目标事务。
47.一种电子设备,包括:存储器、处理器;
48.其中,存储器存储有处理程序;
49.所述处理器用于加载并执行所述存储器存储的所述处理程序,以实现如上述任一项所述的事务的处理方法的各步骤。
50.一种可读存储介质,其上存储有计算机程序,所述计算机程序被处理器调用并执行,实现如上述任一项所述的事务的处理方法的各步骤。
51.经由上述的技术方案可知,本技术提供了一种事务的处理方法、处理方法、电子设备和可读存储介质,包括:基于获得目标事务提交请求,确定所述目标事务的类型,所述类型包括第一类型和第二类型,第一类型事务和第二类型事务是逆向交易;确定所述提交请求对应的至少两个目标资源服务;基于所述目标事务的类型调用资源管理器中与所述至少两个目标资源服务对应的目标尝试接口,以通知所述至少两个目标资源服务准备提交事务,所述目标尝试接口包括第一类型交易对应的第一尝试接口和第二类型交易对应的第二尝试接口;基于所述目标事务的类型是第一类型,若所述至少两个目标资源服务反馈调用
成功,控制所述资源管理器调用第一复用接口,以使得通过所述第一复用接口提交所述目标事务;若所述至少两个目标资源服务反馈调用失败,控制所述资源管理器调用第二复用接口,以使得通过所述第二复用接口回滚所述目标事务;基于所述目标事务的类型是第二类型,若所述至少两个目标资源服务反馈调用成功,控制所述资源管理器调用第二复用接口,以使得通过所述第二复用接口提交所述目标事务;若所述至少两个目标资源服务反馈调用失败,控制所述资源管理器调用第一复用接口,以使得通过所述第一复用接口回滚所述目标事务。本方案中,获得目标事务提交请求后,确定该提交请求对应的多个目标资源服务,通过目标事务的不同类型,选择不同的目标尝试接口以通知该目标资源服务准备提交事务,而且,有不同类型的事务是逆向交易,因此,本实施例中针对不同的事务类型调用的提交接口和调用的回滚接口进行复用,对于银行系统的业务改造量小,而且,能够对于采用saga与tcc解决模式的系统实现互联,减少相关系统的改造成本。
附图说明
52.为了更清楚地说明本技术实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本技术的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
53.图1是现有的tcc模型的框架示意图;
54.图2是本技术提供的一种事务的处理方法实施例1的流程图;
55.图3是本技术提供的一种事务的处理方法实施例1中接口示意图;
56.图4是本技术提供的一种事务的处理方法实施例2的流程图;
57.图5是本技术提供的一种事务的处理方法实施例3的流程图;
58.图6是本技术提供的一种事务的处理方法实施例4的流程图;
59.图7是本技术提供的一种事务的处理方法实施例5的流程图;
60.图8是本技术提供的一种事务的处理装置实施例的结构示意图。
具体实施方式
61.下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本技术一部分实施例,而不是全部的实施例。基于本技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本技术保护的范围。
62.需要说明的是,tcc三种操作的业务含义如下:
63.尝试操作(try)阶段:用于完成所有业务检查,预留应的业务资源;
64.确认操作(confirm)阶段:真正执行的业务逻辑,对业务系统做确认提交,不作任何业务检查,只使用try阶段预留的业务资源。默认confirm阶段是不会出错的,只要try成功,confirm一定成功;
65.取消操作(cancel)阶段:当业务执行出现错误,需要回滚的状态下,执行业务取消,释放预留资源。
66.其中:事务管理器是整个业务活动的发起方,服务的编排者,负责发起并完成整个
业务活动。包括记录维护tcc全局事务的事务状态和每个子事务状态,并在业务活动提交时调用所有子事务服务的confirm操作,在业务活动取消时调用所有子事务服务的cancel操作。
67.资源管理器是整个业务活动的参与方,负责提供tcc业务操作,实现初步操作(try)、确认操作(confirm)、取消操作(cancel)三个接口,供事务管理器调用。
68.如图1所示的是现有的tcc模型的框架示意图,包括:事务管理器101和资源管理器102以及资源服务103,图中,采用实线箭头表示阶段一的流程,采用虚线箭头表示阶段二的流程,在现有的二阶段提交的具体流程如下:
69.在阶段一中:
70.(1)事务管理器首先开启本地事务,并向资源管理器申请启动分布式事务管理活动;
71.(2)事务管理器针对要调用的资源服务,事务管理器先向资源管理器注册要调用的资源服务,然后调用资源管理器中各服务的try接口。
72.在阶段二中:
73.(1)当资源管理器的所有服务的try接口调用成功,资源管理器提交本地事务;若调用失败,资源管理器回滚本地事务;
74.(2)若资源管理器提交本地事务,则分别调用所有资源服务的confirm接口;若事务管理器回滚本地事务,则分别调用cancel接口;
75.(3)所有从业务服务的confirm或cancel操作完成后,全局事务结束。
76.现有技术中,针对正交易和反交易分别设置有三个接口,共六个接口。若将该tcc模式实现的系统应用在银行系统中,需要对于银行系统设置六个接口,对于业务改造量较大。
77.而且,现有的银行分布式系统中还有saga模式,若事务管理器采用saga模式的事务模式,在第二阶段时,假设执行的子事务顺序为子事务1、子事务2、子事务3......执行过程中发现子事务j失败,回滚操作便是从子事务j开始往前回滚,即执行对应的补偿动作j、补偿动作j-1,.....,补偿动作1。一般来说,这两种模式不可混用。
78.由于银行系统有着大量的正反交易事务,如消费2元与充值2元,这些正反交易事务在保证事务一致性时可能采取不同的解决方案,那么这些系统不可以互联,若需要两个模式的系统互联,还需要改造saga模式的系统,业务改造量巨大。
79.如图2所示的,为本技术提供的一种事务的处理方法实施例1的流程图,该方法应用于一运行事务管理器的电子设备,该方法包括以下步骤:
80.步骤s201:基于获得目标事务提交请求,确定所述目标事务的类型;
81.其中,所述类型包括第一类型和第二类型,第一类型事务和第二类型事务是逆向交易。
82.其中,本实施例中,第一类型事务对应于tcc模式的正交易和saga模式中的子交易,第二类型事务对应于tcc模式的反交易和saga模式中子交易的补偿动作。
83.其中,在获得目标事务提交请求后,基于该提交请求进行分析确定该目标事务的类型,后续实施例中会针对该确定目标事务的类型具体过程进行详细说明,本实施例中不做详述。
84.步骤s202:确定所述提交请求对应的至少两个目标资源服务;
85.其中,在获得目标事务的提交请求后,确定处理该目标事务需要调用的资源服务。
86.具体的,事务管理器可以基于本地存储在针对不同事务记录的资源服务进行查询,查询得到该目标事务的提交请求对应的目标资源服务。
87.其中,该目标事务是分布式事务,其涉及多个节点,不同的节点对应不同的资源服务。
88.其中,每个资源服务运行在一个节点中,各个节点之间在物理上相互独立。
89.步骤s203:基于所述目标事务的类型调用资源管理器中与所述至少两个目标资源服务对应的目标尝试接口,以通知所述至少两个目标资源服务准备提交事务;
90.其中,所述目标尝试接口包括第一类型交易对应的第一尝试接口和第二类型交易对应的第二尝试接口。
91.其中,不同类型的目标事务对应不同的尝试(try)接口,若该目标事务是第一类型事务,则调用资源管理器中与所述至少两个目标资源服务对应的第一尝试接口;若该目标事务是第二类型事务,则调用资源管理器中与所述至少两个目标资源服务对应的第二尝试接口。
92.步骤s204:基于所述目标事务的类型是第一类型,若所述至少两个目标资源服务反馈调用成功,控制所述资源管理器调用第一复用接口,以使得通过所述第一复用接口提交所述目标事务;
93.其中,若该多个目标资源服务反馈调用成功,且该目标事务的类型是第一类型,则控制资源管理器通过调用第一复用接口实现提交该目标事务。
94.具体的,控制该资源管理器调用所有的资源服务对应的第一复用接口。
95.其中,第一复用接口提交目标事务后,还反馈提交成功消息,接收所述至少两个目标资源服务在提交所述目标事务后反馈的提交成功消息。
96.具体实施中,在多个目标资源服务成功提交了目标事务后,反馈给资源管理器提交成功消息,该资源管理器将该提交成功消息反馈给事务管理器,该目标事务结束。
97.步骤s205:若所述至少两个目标资源服务反馈调用失败,控制所述资源管理器调用第二复用接口,以使得通过所述第二复用接口回滚所述目标事务;
98.其中,若该多个目标资源服务反馈调用失败,且该目标事务的类型是第一类型,则控制资源管理器通过调用第二复用接口实回滚该目标事务。
99.具体的,控制该资源管理器调用所有的资源服务对应的第二复用接口。
100.其中,第二复用接口回滚目标事务后,还反馈回滚成功消息,接收所述至少两个目标资源服务在回滚所述目标事务后反馈的回滚成功消息。
101.具体实施中,在多个目标资源服务成功回滚了目标事务后,反馈给资源管理器回滚成功消息,该资源管理器将该回滚成功消息反馈给事务管理器,该目标事务结束。
102.步骤s206:基于所述目标事务的类型是第二类型,若所述至少两个目标资源服务反馈调用成功,控制所述资源管理器调用第二复用接口,以使得通过所述第二复用接口提交所述目标事务;
103.其中,若多个目标资源服务反馈调用成功,且该目标事务的类型是第二类型,则控制资源管理器通过调用第二复用接口实现提交该目标事务。
104.其中,第二复用接口提交目标事务后,还反馈提交成功消息,接收所述至少两个目标资源服务在提交所述目标事务后反馈的提交成功消息。
105.具体实施中,在多个目标资源服务成功提交了目标事务后,反馈给资源管理器提交成功消息,该资源管理器将该提交成功消息反馈给事务管理器,该目标事务结束。
106.步骤s207:若所述至少两个目标资源服务反馈调用失败,控制所述资源管理器调用第一复用接口,以使得通过所述第一复用接口回滚所述目标事务。
107.其中,若多个目标资源服务反馈调用失败,且该目标事务的类型是第二类型,则控制资源管理器通过调用第一复用接口实现回滚该目标事务。
108.其中,由于该第二类型事务与第一类型事务是逆向交易,二者可以将取消接口和确认接口复用,第一类型事务对应的确认接口作为第二类型事务对应的取消接口,第一类型事务对应的取消接口作为第二类型事务对应的确认接口。
109.其中,第一复用接口回滚目标事务后,还反馈回滚成功消息,接收所述至少两个目标资源服务在回滚所述目标事务后反馈的回滚成功消息。
110.具体实施中,在多个目标资源服务成功回滚了目标事务后,反馈给资源管理器回滚成功消息,该资源管理器将该回滚成功消息反馈给事务管理器,该目标事务结束。
111.如图3所示的,是接口示意图,包括第一尝试接口301、第一复用接口302、第二复用接口303和第二尝试接口304,其中,实线箭头方向表示第一类型事务调用接口的顺序,虚线箭头方向表示第二类型事务调用接口的顺序。其中,在第一阶段,第一类型事务调用第一尝试接口301实现调用资源服务,在第二阶段,若资源服务调用成功,调用第一复用接口302,实现提交该事务;若资源服务调用失败,调用第二复用接口303,实现回滚该事务;其中,在第一阶段,第二类型事务调用第二尝试接口304实现调用资源服务,在第二阶段,若资源服务调用成功,调用第二复用接口303实现提交该事务;若资源服务调用失败,调用第一复用接口302,实现回滚该事务。
112.需要说明的是,第一复用接口和第二复用接口的设置理由如下:
113.本解释中采用正交易代表第一类型事务,采用反交易代表第二类型事务。
114.设正交易满足tcc条件:
115.a1.各子系统try方法都能够回退(cancel都能成功);
116.a2.子系统try成功后,只要系统通信正常confirm一定能成功;
117.a3.try/confirm/cancel满足幂等,多次提交与一次效果相同;
118.据此,构造tcc正交易实现算法:
119.第一阶段
120.1.调用各子系统交易的try方法;
121.2.若任一子系统交易try不成功,则整个交易回退,提交已成功子系统交易的cancel方法。由tcc条件a1,cancel一定成功。所以必能回退到交易提交前状态。
122.第二阶段
123.若各子系统交易try都成功,提交各子系统交易的confirm方法。由tcc条件a2,confirm一定成功。
124.因此,得到推论一
125.综合第一第二两阶段操作可知,或者整个交易回退到交易提交前状态(第一阶段
回退),或者整个交易成功(第二阶段完成)。
126.且,tcc模式反交易交易一致性证明:
127.注意cancelconfirm是正交易confirm(复核)的反交易,则对反交易方向,反交易的try即cancelconfirm,反交易的cancel即confirm,反交易的confirm即正交易的cancel。
128.可以证明反交易满足tcc条件:
129.1.反交易的try都能够回退。注意反交易的cancel即正交易的confirm,由正交易tcc条件a2,confirm一定成功,即反交易cancel一定成功,反交易try都能回退。
130.2.try成功后,反交易confirm一定成功。注意反交易的confirm就是正交易的cancel,由正交易tcc条件a1,正交易try方法都能够回退(cancel都能成功)=》反交易confirm一定成功
131.3.只要cancelconfirm支持幂等,反交易的cancel等于正交易confirm,反交易confirm等于正交易cancel,则反交易使用的方法都支持幂等。
132.又由推论一可知,tcc反交易满足或者全部成功或者全部回退。
133.即构造出来的正反交易都满足tcc特性,一定保证交易一致性。
134.因此,根据上述推论,本技术中,针对逆向交易的第一类型事务和第二类型事务,在调用提交的提交接口和调用回滚的回滚接口进行了复用。
135.需要说明的是,针对银行系统,只需要在正交易的基础上设置一个反交易对应的尝试(try)接口,取消(cancel)接口复用正交易的确认(confirm)接口,确认(confirm)接口复用正交易的取消(cancel)接口复用即可,实现了提交接口和回滚接口的逆向复用,无需单独设置反交易的确认(confirm)接口和取消(cancel)接口,对于银行系统的业务改造量小。
136.相应的,由于因为saga模式中的子交易可以认为是上述正交易的tcc模式,补偿动作可以认为是上述反交易的tcc模式,那么基于saga模式的正反交易分布式事务一致性也能够与上述实现的tcc模式混用,以及在这样做法中,采用saga与tcc解决模式的系统便可以互联,减少相关系统的改造成本。
137.综上,本实施例提供的一种事务的处理方法,获得目标事务提交请求后,确定该提交请求对应的多个目标资源服务,通过目标事务的不同类型,选择不同的目标尝试接口以通知该目标资源服务准备提交事务,而且,有不同类型的事务是逆向交易,因此,本实施例中针对不同的事务类型调用的提交接口和调用的回滚接口进行逆向复用,对于银行系统的业务改造量小,而且,能够对于采用saga模式与tcc模式的系统实现互联,减少相关系统的改造成本。
138.如图4所示的,为本技术提供的一种事务的处理方法实施例2的流程图,该方法包括以下步骤:
139.步骤s401:接收目标事务提交请求;
140.其中,接收到目标事务提交请求,该目标事务是tcc模式的正交易或者是saga模式的子交易。
141.步骤s402:为所述目标事务分配事务标识;
142.其中,该目标事务作为首次发起的事务,在收到提交请求后,为该目标事务分配事务标识,该事务标识具有唯一性。
143.例如,随机生成一组字符,将该字符作为该目标事务的事务标识。
144.具体的,分布式系统中的各个节点能够基于该事务标识对于该目标事务进行处理。
145.需要说明的是,该事务标识的分配原则可以根据实际情况进行设置,本技术中不对于该事务标识的具体形式做限制。
146.步骤s403:确定所述目标事务的类型是第一类型;
147.其中,分析该提交请求中是否携带有事务标识,如果没有携带事务标识,则表征该目标事务作为首次发起的事务。
148.其中,首次发起的事务的类型的第一类型。
149.步骤s404:确定所述提交请求对应的至少两个目标资源服务;
150.步骤s405:基于所述目标事务的类型调用资源管理器中与所述至少两个目标资源服务对应的目标尝试接口,以通知所述至少两个目标资源服务准备提交事务;
151.步骤s406:基于所述目标事务的类型是第一类型,若所述至少两个目标资源服务反馈调用成功,控制所述资源管理器调用第一复用接口,以使得通过所述第一复用接口提交所述目标事务;
152.步骤s407:若所述至少两个目标资源服务反馈调用失败,控制所述资源管理器调用第二复用接口,以使得通过所述第二复用接口回滚所述目标事务;
153.步骤s408:基于所述目标事务的类型是第二类型,若所述至少两个目标资源服务反馈调用成功,控制所述资源管理器调用第二复用接口,以使得通过所述第二复用接口提交所述目标事务;
154.步骤s409:若所述至少两个目标资源服务反馈调用失败,控制所述资源管理器调用第一复用接口,以使得通过所述第一复用接口回滚所述目标事务。
155.其中,步骤s404-409与实施例1中的步骤s202-207一致,本实施例中不做赘述。
156.综上,本实施例提供的一种事务的处理方法中,在接收到提交请求后,确定该提交请求中无事务标识,该目标事务是首次发起的事务,确定该目标事务是第一类型,并且为该目标事务分配事务标识,实现了针对首次发起的事务确定类型的目的。
157.如图5所示的,为本技术提供的一种事务的处理方法实施例3的流程图,该方法包括以下步骤:
158.步骤s501:基于第一事务失败,获得所述第一事务的事务标识;
159.其中,若之前执行的一个事务失败,则需要对于执行该事务的反交易或者是补偿动作。
160.具体的,该第一事务失败,可以是进行提交/回滚时未接收到对应的全部资源服务反馈的成功消息。
161.例如,第一事务提交时涉及5个资源服务的节点,只有4个节点反馈提交成功消息,在预设的有效接收时间内未接收到第5个节点反馈的消息,则该事务提交失败。
162.例如,第一事务回滚时涉及3个资源服务的节点,1个节点反馈回滚成功,2个节点反馈回滚失败,则该事务回滚失败。
163.其中,在确定了第一事务失败后,获得该第一事务的事务标识,该事务标识是表征该第一事务唯一性的信息。
164.步骤s502:生成目标事务的提交请求;
165.其中,所述目标事务是与所述第一事务逆向的交易,所述目标事务的提交请求中包含有所述第一事务的事务标识。
166.其中,在获得第一事务的事务标识后,为了对于该正交易/子事务进行逆向操作,需要执行反交易/子交易的补偿动作。
167.相应的,将该反交易/子交易的补偿动作作为目标事务,生成该目标事务的提交请求,该提交请求中携带有该第一事务的事务标识。
168.步骤s503:确定所述目标事务的类型是第二类型;
169.其中,基于该目标事务是对于第一事务的逆向操作,确定该目标事务的类型是第二类型。
170.步骤s504:确定所述提交请求对应的至少两个目标资源服务;
171.步骤s505:基于所述目标事务的类型调用资源管理器中与所述至少两个目标资源服务对应的目标尝试接口,以通知所述至少两个目标资源服务准备提交事务;
172.步骤s506:基于所述目标事务的类型是第一类型,若所述至少两个目标资源服务反馈调用成功,控制所述资源管理器调用第一复用接口,以使得通过所述第一复用接口提交所述目标事务;
173.步骤s507:若所述至少两个目标资源服务反馈调用失败,控制所述资源管理器调用第二复用接口,以使得通过所述第二复用接口回滚所述目标事务;
174.步骤s508:基于所述目标事务的类型是第二类型,若所述至少两个目标资源服务反馈调用成功,控制所述资源管理器调用第二复用接口,以使得通过所述第二复用接口提交所述目标事务;
175.步骤s509:若所述至少两个目标资源服务反馈调用失败,控制所述资源管理器调用第一复用接口,以使得通过所述第一复用接口回滚所述目标事务。
176.其中,步骤s504-509与实施例1中的步骤s202-207一致,本实施例中不做赘述。
177.综上,本实施例提供的一种事务的处理方法中,基于第一事务失败,确定为该第一事务的失败执行逆向交易的目标事务,获得该第一事务的事务标识,并生成目标事务的提交请求,提交请求中包含有第一事务的事务标识,由于该目标事务是第一事务执行的逆向交易,确定该目标事务是第二类型,实现了针对失败的事务执行逆向交易的目标事务确定类型的目的。
178.如图6所示的,为本技术提供的一种事务的处理方法实施例4的流程图,该方法包括以下步骤:
179.步骤s601:基于获得目标事务提交请求,确定所述目标事务的类型;
180.步骤s602:确定所述提交请求对应的至少两个目标资源服务;
181.其中,步骤s601-602与实施例1中的步骤s201-202一致,本实施例中不做赘述。
182.步骤s603:基于所述目标事务的类型向资源管理器申请所述至少两个目标资源服务,以使得所述资源管理器确定所述至少两个目标资源服务对应的目标尝试接口;
183.其中,在确定了目标事务的类型后,向资源管理器申请该多个目标资源服务。
184.具体的,事务管理器向资源管理器注册要调用的多个目标资源服务,该资源管理器基于该事务管理器申请的目标资源服务,确定与该目标资源服务对应的目标尝试接口。
185.例如,事务管理器基于正交易向资源管理器申请多个目标资源服务,该资源管理器确定该目标资源服务后,向事务管理器反馈该多个资源服务的第一尝试接口
186.例如,事务管理器基于反交易向资源管理器申请多个目标资源服务,该资源管理器确定该目标资源服务后,向事务管理器反馈该多个资源服务的二尝试接口。
187.步骤s604:调用所述资源管理器反馈的所述目标尝试接口;
188.其中,事务管理器在接收到资源管理器反馈的目标尝试接口后,通过调用该目标尝试接口以实现通知所述至少两个目标资源服务准备提交事务。
189.步骤s605:基于所述目标事务的类型是第一类型,若所述至少两个目标资源服务反馈调用成功,控制所述资源管理器调用第一复用接口,以使得通过所述第一复用接口提交所述目标事务;
190.步骤s606:若所述至少两个目标资源服务反馈调用失败,控制所述资源管理器调用第二复用接口,以使得通过所述第二复用接口回滚所述目标事务;
191.步骤s607:基于所述目标事务的类型是第二类型,若所述至少两个目标资源服务反馈调用成功,控制所述资源管理器调用第二复用接口,以使得通过所述第二复用接口提交所述目标事务;
192.步骤s608:若所述至少两个目标资源服务反馈调用失败,控制所述资源管理器调用第一复用接口,以使得通过所述第一复用接口回滚所述目标事务。
193.其中,步骤s605-608与实施例1中的步骤s204-207一致,本实施例中不做赘述。
194.综上,本实施例提供的一种事务的处理方法中,基于不同类型的目标事务,向资源管理器申请目标资源服务,资源管理器在确定了该目标资源服务对应的目标尝试接口后反馈给事务管理器,事务管理器调用该目标尝试接口实现了针对不同类型的事务调用不同目标尝试接口的目的。
195.如图7所示的,为本技术提供的一种事务的处理方法实施例5的流程图,该方法包括以下步骤:
196.步骤s701:基于获得目标事务提交请求,确定所述目标事务的类型;
197.步骤s702:确定所述提交请求对应的至少两个目标资源服务;
198.步骤s703:基于所述目标事务的类型调用资源管理器中与所述至少两个目标资源服务对应的目标尝试接口,以通知所述至少两个目标资源服务准备提交事务;
199.其中,步骤s701-703与实施例1中的步骤s201-203一致,本实施例中不做赘述。
200.步骤s704:接收到任意资源服务反馈的调用结果信息;
201.其中,分布式系统中具有若干节点执行资源服务,每个资源服务对于事务管理器反馈其处理事务的调用结果信息,如提交事务或者回滚事务等,而且,该若干节点上的资源服务处理的事务并不是同一个事务,而是多个事务。
202.因此,事务管理器能够接收到分布式系统中各个资源服务反馈的调用结果信息,该调用结果信息可能是针对相同的事务调用的结果,也可能是针对不同的事务调用的结果。
203.步骤s705:基于所述调用结果信息中的事务标识,确定所述调用结果信息对应的事务;
204.其中,资源服务处理事务后,反馈的调用结果信息中携带有其处理事务的事务标
识。
205.其中,对于该调用结果进行分析,得到其中的事务标识,确定该调用结果信息对应的事务。
206.其中,事务管理器对于其接收到的各个调用结果信息进行统计,具体是基于事务标识,针对同一事务标识的调用结果进行统计。
207.步骤s706:统计所述目标事务的调用结果;
208.其中,基于该目标事务的事务标识,统计该目标事务的调用结果。
209.具体的,该事务管理器中记载有该目标事务对应的目标资源服务个数,基于该统计的调用结果确定是否全部成功。
210.其中,若在预设时间段内接收到全部目标资源服务反馈的成功调用结果,则确定所述至少两个目标资源服务反馈调用成功。
211.其中,至少两个目标资源服务反馈调用成功,若该目标事务是第一类型,触发步骤s707,若该目标事务是第二类型,触发步骤s709。
212.其中,若在预设时间段内接收到全部目标资源服务反馈的调用结果,部分成功,部分失败,确定所述至少两个目标资源服务反馈调用失败;若在预设时间段内未收到全部目标资源服务反馈的调用结果,确定所述至少两个目标资源服务反馈调用失败。
213.其中,至少两个目标资源服务反馈调用失败,若该目标事务是第一类型,触发步骤s708,若该目标事务是第二类型,触发步骤s710。
214.步骤s707:基于所述目标事务的类型是第一类型,若所述至少两个目标资源服务反馈调用成功,控制所述资源管理器调用第一复用接口,以使得通过所述第一复用接口提交所述目标事务;
215.步骤s708:若所述至少两个目标资源服务反馈调用失败,控制所述资源管理器调用第二复用接口,以使得通过所述第二复用接口回滚所述目标事务;
216.步骤s709:基于所述目标事务的类型是第二类型,若所述至少两个目标资源服务反馈调用成功,控制所述资源管理器调用第二复用接口,以使得通过所述第二复用接口提交所述目标事务;
217.步骤s710:若所述至少两个目标资源服务反馈调用失败,控制所述资源管理器调用第一复用接口,以使得通过所述第一复用接口回滚所述目标事务。
218.其中,步骤s707-710与实施例1中的步骤s204-207一致,本实施例中不做赘述。
219.综上,本实施例提供的一种事务的处理方法中,接收到分布式系统中各个资源服务反馈的调用结果信息,确定每个调用结果对应的事务,基于该目标事务的事务标识,在该若干调用结果信息中统计目标事务的调用结果,若该目标事务的调用结果全部成功,则确定该至少两个目标资源服务反馈调用成功,否则,确定反馈调用失败,实现了确定至少两个目标资源事务的调用是否成功的目的。
220.与上述本技术提供的一种事务的处理方法实施例相对应的,本技术还提供了应用该事务的处理方法的处理装置实施例。
221.如图8所示的为本技术提供的一种事务的处理装置实施例的结构示意图,该处理装置包括以下结构:第一确定模块801、第二确定模块802、调用模块803、第一控制模块804和第二控制模块805。
222.其中,该第一确定模块801,用于基于获得目标事务提交请求,确定所述目标事务的类型,所述类型包括第一类型和第二类型,第一类型事务和第二类型事务是逆向交易;
223.其中,该第二确定模块802,用于确定所述提交请求对应的至少两个目标资源服务;
224.其中,该调用模块803,用于基于所述目标事务的类型调用资源管理器中与所述至少两个目标资源服务对应的目标尝试接口,以通知所述至少两个目标资源服务准备提交事务,所述目标尝试接口包括第一类型交易对应的第一尝试接口和第二类型交易对应的第二尝试接口;
225.其中,该第一控制模块804,用于基于所述目标事务的类型是第一类型,若所述至少两个目标资源服务反馈调用成功,控制所述资源管理器调用第一复用接口,以使得通过所述第一复用接口提交所述目标事务;若所述至少两个目标资源服务反馈调用失败,控制所述资源管理器调用第二复用接口,以使得通过所述第二复用接口回滚所述目标事务;
226.其中,该第二控制模块805,用于基于所述目标事务的类型是第二类型,若所述至少两个目标资源服务反馈调用成功,控制所述资源管理器调用第二复用接口,以使得通过所述第二复用接口提交所述目标事务;若所述至少两个目标资源服务反馈调用失败,控制所述资源管理器调用第一复用接口,以使得通过所述第一复用接口回滚所述目标事务。
227.可选的,第一确定模块,包括:
228.第一接收单元,用于接收目标事务提交请求;
229.分配单元,用于为所述目标事务分配事务标识;
230.第一确定单元,用于确定所述目标事务的类型是第一类型。
231.可选的,第一确定模块,包括:
232.获得单元,用于基于第一事务失败,获得所述第一事务的事务标识;
233.生成单元,用于生成目标事务的提交请求,所述目标事务是与所述第一事务逆向的交易,所述目标事务的提交请求中包含有所述第一事务的事务标识;
234.第二确定单元,用于确定所述目标事务的类型是第二类型。
235.可选的,调用模块,具体用于:
236.基于所述目标事务的类型向资源管理器申请所述至少两个目标资源服务,以使得所述资源管理器确定所述至少两个目标资源服务对应的目标尝试接口;
237.调用所述资源管理器反馈的所述目标尝试接口。
238.可选的,还包括:
239.判断模块,用于判断所述至少两个目标资源服务反馈调用成功;
240.所述判断模块,包括:
241.第二接收单元,用于接收到任意资源服务反馈的调用结果信息;
242.第三确定单元,用于基于所述调用结果信息中的事务标识,确定所述调用结果信息对应的事务;
243.统计单元,用于统计所述目标事务的调用结果;
244.判断单元,用于判断目标事务是否全部调用结果成功,如果是,确定所述至少两个目标资源服务反馈调用成功;否则,确定所述至少两个目标资源服务反馈调用失败。
245.可选的,还包括:
246.第一接收模块,用于接收所述至少两个目标资源服务在提交所述目标事务后反馈的提交成功消息。
247.可选的,还包括:
248.第二接收模块,用于接收所述至少两个目标资源服务在回滚所述目标事务后反馈的回滚成功消息。
249.需要说明的是,本实施例中提供的一种事务的处理装置中的各个结构的功能解释,请参考前述方法实施例中的解释,本实施例中不做赘述。
250.综上,本实施例提供的一种事务的处理装置,获得目标事务提交请求后,确定该提交请求对应的多个目标资源服务,通过目标事务的不同类型,选择不同的目标尝试接口以通知该目标资源服务准备提交事务,而且,有不同类型的事务是逆向交易,因此,本实施例中针对不同的事务类型调用的提交接口和调用的回滚接口进行逆向复用,对于银行系统的业务改造量小,而且,能够对于采用saga模式与tcc模式的系统实现互联,减少相关系统的改造成本。
251.与上述本技术提供的一种事务的处理方法实施例相对应的,本技术还提供了与该事务的处理方法相应的电子设备以及可读存储介质。
252.其中,该电子设备,包括:存储器、处理器;
253.其中,存储器存储有处理程序;
254.所述处理器用于加载并执行所述存储器存储的所述处理程序,以实现如上述任一项所述的事务的处理方法的各步骤。
255.具体该电子设备的实现事务的处理方法,参考前述事务的处理方法实施例即可。
256.其中,该可读存储介质,其上存储有计算机程序,所述计算机程序被处理器调用并执行,实现如上述任一项所述的事务的处理方法的各步骤。
257.具体该可读存储介质存储的计算机程序执行实现事务的处理方法,参考前述事务的处理方法实施例即可。
258.本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例提供的装置而言,由于其与实施例提供的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
259.对所提供的实施例的上述说明,使本领域专业技术人员能够实现或使用本技术。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本技术的精神或范围的情况下,在其它实施例中实现。因此,本技术将不会被限制于本文所示的这些实施例,而是要符合与本文所提供的原理和新颖特点相一致的最宽的范围。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1