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

一种分布式事务处理方法及相关设备与流程

2023-01-14 15:17:45 来源:中国专利 TAG:


1.本公开涉及数据处理技术领域,尤其涉及一种分布式事务处理方法及相关设备。


背景技术:

2.在人员管理过程中,由于管理需求不同,人员信息差异化和复杂化,会遇到由于网络超时多个数据库中人员信息管理不一致的情况,出现各个事务不同步的问题。
3.有鉴于此,如何保证人员管理过程中各个分布式事务的同步性成为亟待解决的问题。


技术实现要素:

4.有鉴于此,本公开的目的在于提出一种分布式事务处理方法及相关设备用以解决或部分解决上述技术问题。
5.基于上述目的,本公开的第一方面提出了一种分布式事务处理方法,所述方法应用于分布式事务处理系统,所述分布式事务处理系统包括业务应用、事务协调器和服务端,其中,所述服务端包括:人员账号子服务端、人员状态子服务端和待办事务子服务端,所述服务端分别对应存在数据库,所述数据库中设置有分布式事务,所述方法包括:
6.所述业务应用开启所述分布式事务,其中,所述分布式事务包括:查询账号信息子事务、查询人员状态子事务和查询待办事务子事务;
7.所述业务应用调用所述人员账号子服务端、所述人员状态子服务端和所述待办事务子服务端的尝试接口,所述人员账号子服务端依据所述人员账号子服务端的尝试接口对所述查询账号信息子事务进行尝试操作处理,所述人员状态子服务端依据所述人员状态子服务端的尝试接口对所述查询人员状态子事务进行尝试操作处理,所述待办事务子服务端依据所述待办事务子服务端的尝试接口对所述查询待办事务子事务进行尝试操作处理;
8.所述业务应用对所述人员账号子服务端、所述人员状态子服务端和所述待办事务子服务端的尝试接口依次进行判断;
9.响应于确定所述人员账号子服务端、所述人员状态子服务端和所述待办事务子服务端中任一服务端的尝试接口调用失败,确定任一分布式事务的尝试操作处理失败,所述业务应用向所述事务协调器发送事务回滚请求;
10.响应于确定所述事务协调器接收到所述事务回滚请求,依次调用所述人员账号子服务端、所述人员状态子服务端和所述待办事务子服务端的回滚接口。
11.在一些实施例中,所述人员账号子服务端依据所述人员账号子服务端的尝试接口对所述查询账号信息子事务进行尝试操作处理,所述人员状态子服务端依据所述人员状态子服务端的尝试接口对所述查询人员状态子事务进行尝试操作处理,所述待办事务子服务端依据所述待办事务子服务端的尝试接口对所述查询待办事务子事务进行尝试操作处理,包括:
12.所述人员账号子服务端依据所述人员账号子服务端的尝试接口对所述查询账号
信息子事务进行尝试操作处理,用于查询人员账号信息,对人员账号进行监控管理;
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.图1a为本公开实施例的分布式事务处理方法的流程图;
41.图1b为本公开实施例的人员管理分布式事务处理模型的示意图;
42.图2为本公开实施例的分布式事务处理装置的流程图;
43.图3为本公开实施例的电子设备的结构示意图。
具体实施方式
44.为使本公开的目的、技术方案和优点更加清楚明白,以下结合具体实施例,并参照附图,对本公开进一步详细说明。
45.需要说明的是,除非另外定义,本公开实施例使用的技术术语或者科学术语应当为本公开所属领域内具有一般技能的人士所理解的通常意义。本公开实施例中使用的“第一”、“第二”以及类似的词语并不表示任何顺序、数量或者重要性,而只是用来区分不同的组成部分。“包括”或者“包含”等类似的词语意指出现该词前面的元件或者物件涵盖出现在该词后面列举的元件或者物件及其等同,而不排除其他元件或者物件。“连接”或者“相连”等类似的词语并非限定于物理的或者机械的连接,而是可以包括电性的连接,不管是直接的还是间接的。“上”、“下”、“左”、“右”等仅用于表示相对位置关系,当被描述对象的绝对位置改变后,则该相对位置关系也可能相应地改变。
46.如上所述,如何保证人员管理过程中各个分布式事务的同步性成为一个重要的研究问题。
47.基于上述描述,如图1a所示,本实施例提出的一种分布式事务处理方法,所述方法应用于分布式事务处理系统,所述分布式事务处理系统包括业务应用、事务协调器和服务端,其中,所述服务端包括:人员账号子服务端、人员状态子服务端和待办事务子服务端,所述服务端分别对应存在数据库,所述数据库中设置有分布式事务,所述方法包括:
48.步骤101,所述业务应用开启所述分布式事务,其中,所述分布式事务包括:查询账号信息子事务、查询人员状态子事务和查询待办事务子事务。
49.具体实施时,所述业务应用作为事务开启的入口,开启分布式事务,所述分布式事务包括:查询账号信息子事务、查询人员状态子事务和查询待办事务子事务,每个子事务由对应的子服务端处理,例如,当人员账号子服务端对人员账号信息进行查询时,所述业务应用开启包括查询人员状态和查询待办事务两个子事务的分布式事务。
50.步骤102,所述业务应用调用所述人员账号子服务端、所述人员状态子服务端和所述待办事务子服务端的尝试接口,所述人员账号子服务端依据所述人员账号子服务端的尝试接口对所述查询账号信息子事务进行尝试操作处理,所述人员状态子服务端依据所述人员状态子服务端的尝试接口对所述查询人员状态子事务进行尝试操作处理,所述待办事务子服务端依据所述待办事务子服务端的尝试接口对所述查询待办事务子事务进行尝试操作处理。
51.具体实施时,所述业务应用调用所述人员账号子服务端、所述人员状态子服务端和所述待办事务子服务端的尝试接口,其中,尝试接口的调用可包括子事务的事务标识等信息,例如,人员账号子服务端分别向人员状态子服务端和待办事务子服务端发送尝试请求,向人员状态子服务端发送的尝试请求包括标识“查询人员状态信息”这一子事务的事务标识,向待办事务子服务端发送的尝试请求包括标识“查询人员待办事务信息”这一子事务的事务标识。
52.其中,调用尝试接口也即尝试执行子事务,包括完成执行子事务所需的所有业务检查,并预留必须的业务资源。每个子服务端的尝试接口被调用后,均对自身子事务进行尝试操作。尝试操作并不是真正执行子事务,相当于对执行子事务的“彩排”和“预演”,并不真正对数据库中的数据进行更改。
53.步骤103,所述业务应用对所述人员账号子服务端、所述人员状态子服务端和所述待办事务子服务端的尝试接口依次进行判断。
54.具体实施时,所述尝试接口调用结果包括调用成功和调用失败,调用结果为成功时,说明对应的子服务端执行尝试操作时,能够按照预定的要求完成操作,调用结果为失败时,说明对应的子服务端执行尝试操作时,无法按照预定的要求完成操作,预定的要求包括执行时间,执行逻辑等,例如,人员状态子服务端调用尝试接口失败时,如果人员状态信息查询失败,则调用待办事务子服务端的尝试接口时,继续查询人员待办事务,不满足执行逻辑,执行结果为失败。
55.步骤104,响应于确定所述人员账号子服务端、所述人员状态子服务端和所述待办事务子服务端中任一服务端的尝试接口调用失败,确定任一分布式事务的尝试操作处理失败,所述业务应用向所述事务协调器发送事务回滚请求。
56.具体实施时,当所述业务应用接收到所述人员账号子服务端、所述人员状态子服务端和所述待办事务子服务端中任一子服务端的尝试接口调用失败时,说明分布式事务包括的子事务中存在不能够正常执行的子事务,为了保证事务的一致性,向所述事务协调器发送事务回滚请求。例如,当所述人员状态子服务端的尝试接口调用失败,说明“查询人员状态信息”这一子事务不能正常执行,所述业务应用向所述事务协调器发送事务回滚请求。
57.步骤105,响应于确定所述事务协调器接收到所述事务回滚请求,依次调用所述人员账号子服务端、所述人员状态子服务端和所述待办事务子服务端的回滚接口。
58.具体实施时,当所述事务协调器接收到所述事务回滚请求后,所述事务协调器调用各个子服务端的回滚接口,执行回滚操作,将尝试操作进行回滚,所有子服务端回到初始状态。
59.在上述实施例中,所述业务应用开启所述分布式事务,其中,所述分布式事务包括:查询账号信息子事务、查询人员状态子事务和查询待办事务子事务;所述业务应用调用所述人员账号子服务端、所述人员状态子服务端和所述待办事务子服务端的尝试接口,所述人员账号子服务端依据所述人员账号子服务端的尝试接口对所述查询账号信息子事务进行尝试操作处理,所述人员状态子服务端依据所述人员状态子服务端的尝试接口对所述查询人员状态子事务进行尝试操作处理,所述待办事务子服务端依据所述待办事务子服务端的尝试接口对所述查询待办事务子事务进行尝试操作处理,通过调用各子服务端对应的尝试接口处理对应的子事务;所述业务应用对所述人员账号子服务端、所述人员状态子服
务端和所述待办事务子服务端的尝试接口依次进行判断,通过对尝试端口进行判断确定分布式事务的尝试操作是否成功;当所述人员账号子服务端、所述人员状态子服务端和所述待办事务子服务端中任一服务端的尝试接口调用失败,可以确定存在分布式事务尝试操作处理失败,所述业务应用向所述事务协调器发送事务回滚请求,实现事务处理的整体性;当所述事务协调器接收到所述事务回滚请求,依次调用所述人员账号子服务端、所述人员状态子服务端和所述待办事务子服务端的回滚接口,实现事务处理的回滚,事务处理状态回到尝试状态,分布式事务中只要有一个处理失败就会进行回滚,实现事务处理的同步性。
60.在一些实施例中,步骤102包括:
61.步骤1021,所述人员账号子服务端依据所述人员账号子服务端的尝试接口对所述查询账号信息子事务进行尝试操作处理,用于查询人员账号信息,对人员账号进行监控管理。
62.步骤1022,所述人员状态子服务端依据所述人员状态子服务端的尝试接口对所述查询人员状态子事务进行尝试操作处理,用于查询人员状态信息,对人员状态进行监控管理。
63.步骤1023,所述待办事务子服务端依据所述待办事务子服务端的尝试接口对所述查询待办事务子事务进行尝试操作处理,用于查询人员待办事务信息,对人员待办事务进行监控管理。
64.其中,所述查询账号信息子事务与所述查询人员状态子事务按照处理逻辑先后执行。
65.具体实施时,通过调用每个子服务端的尝试接口可以对对应的子事务进行传输操作处理。调用尝试接口也即尝试执行子事务,包括完成执行子事务所需的所有业务检查,并预留必须的业务资源。每个子服务端的尝试接口被调用后,均对自身子事务进行尝试操作。尝试操作并不是真正执行子事务,相当于对执行子事务的“彩排”和“预演”,并不真正对数据库中的数据进行更改。
66.其中,所述分布式事务包括的各个子事务之间是按照处理逻辑先后执行的。例如,查询人员账号信息完成,才能查询人员状态信息和查询人员待办事务信息,因此,在所述查询账号信息子事务完成后,所述查询人员状态子事务和所述查询待办事务子事务才可以执行。
67.在一些实施例中,步骤105之后还包括:
68.步骤105a,所述业务应用返回重新调用所述人员账号子服务端、所述人员状态子服务端和所述待办事务子服务端的尝试端口,对所述查询账号信息子事务、所述查询人员状态子事务和所述查询待办事务子事务重新进行尝试操作处理。
69.具体实施时,当所述事务协调器调用各个子服务端的回滚接口后,将尝试操作进行回滚,所有子服务端回到初始状态,重新对所述人员账号子服务端、所述人员状态子服务端和所述待办事务子服务端的尝试端口进行调用,对各个子事务重新进行尝试操作处理。
70.在一些实施例中,步骤102之后还包括:
71.步骤1030,响应于确定所述业务应用网络超时,所述业务应用调用所述尝试接口失败,所述事务协调器调用所述回滚接口,所述业务应用判定所述事务协调器调用的所述回滚接口为空回滚,并将所述分布式事务的状态设置为事务空回滚状态。
72.具体实施时,当所述业务应用发生网络超时,在没有调用尝试接口但是成功调用回滚接口的情况下,所述业务应用识别此时为空回滚,直接返回初始状态。例如,所述业务应用发生网络超时,没有对所述人员账号子服务端、所述人员状态子服务端和所述待办事务子服务端的尝试端口进行调用,因此,没有对所述查询账号信息子事务、所述查询人员状态子事务和所述查询待办事务子事务进行尝试操作处理,但是所述事务协调器调用了各个子服务端的回滚接口,则此次回滚为空回滚。
73.在一些实施例中,步骤1030之后还包括:
74.步骤1030a,响应于确定所述业务应用网络恢复,所述业务应用重新调用服务端的尝试接口并重新向所述事务协调器发送对应的事务请求。
75.步骤1030b,所述事务协调器对所述回滚接口调用状态进行判断。
76.步骤1030c,响应于确定所述回滚接口调用成功,所述事务协调器忽略重新发送的所述事务请求。
77.具体实施时,当所述业务应用网络恢复后,所述业务应用重新对所述人员账号子服务端、所述人员状态子服务端和所述待办事务子服务端的尝试端口进行调用,尝试接口调用完成后,所述业务应用向所述事务协调器发送提交请求或者回滚请求,但是由于空回滚,所述事务协调器已经完成回滚接口的调用,因此,所述事务协调器忽视此次的提交请求或者回滚请求。
78.在一些实施例中,步骤105之后还包括:
79.步骤105b,响应于确定所述事务协调器网络超时,所述回滚接口调用失败,所述事务协调器对所述回滚接口重新进行调用。
80.步骤105c,响应于确定所述事务协调器网络超时,所述确认接口调用失败,所述事务协调器对所述确认接口重新进行调用。
81.具体实施时,当所述事务协调器网络超时,此时子服务端的回滚接口和/ 或确认接口会发生调用失败,此时所述事务协调器要对对应的接口重新进行调用。为了保证数据的一致性,尝试接口、确认接口和回滚接口要保证幂等,当回滚接口调用失败会对所述回滚接口重新进行调用,不会出现回滚接口调用失败,再次进行调用时调用为其他接口的问题。这样,保证数据的一致性,也不会重复使用或者释放资源。
82.在一些实施例中,步骤105之后还包括:
83.步骤105d,所述业务应用和所述事务协调器分别对分布式事务设置处理状态。
84.其中,所述业务应用向所述事务协调器发送启动事务请求后,设置所述分布式事务的状态为事务开启状态;所述业务应用调用所有服务端的尝试接口后,设置所述分布式事务的状态为事务尝试中状态;所述业务应用确定任一服务端的尝试接口调用失败后,设置所述分布式事务的状态为事务尝试失败状态;所述业务应用确定所有服务端的尝试接口调用成功,设置所述分布式事务的状态为事务尝试成功状态;所述事务协调器调用服务端的回滚接口后,设置所述分布式事务的状态为事务回滚完成状态;所述事务协调器调用服务端的确认接口,设置所述分布式事务的状态为事务确认完成状态。
85.具体实施时,所述业务应用和所述事务协调器在进行接口调用的同时,还要对分布式事务设置处理状态,依据所述处理状态判断所述分布式事务的处理进度,方便进行下一步操作。
86.在上述实施例中,所述业务应用开启所述分布式事务,其中,所述分布式事务包括:查询账号信息子事务、查询人员状态子事务和查询待办事务子事务;所述业务应用调用所述人员账号子服务端、所述人员状态子服务端和所述待办事务子服务端的尝试接口,所述人员账号子服务端依据所述人员账号子服务端的尝试接口对所述查询账号信息子事务进行尝试操作处理,所述人员状态子服务端依据所述人员状态子服务端的尝试接口对所述查询人员状态子事务进行尝试操作处理,所述待办事务子服务端依据所述待办事务子服务端的尝试接口对所述查询待办事务子事务进行尝试操作处理,通过调用各子服务端对应的尝试接口处理对应的子事务;所述业务应用对所述人员账号子服务端、所述人员状态子服务端和所述待办事务子服务端的尝试接口依次进行判断,通过对尝试端口进行判断确定分布式事务的尝试操作是否成功;当所述人员账号子服务端、所述人员状态子服务端和所述待办事务子服务端中任一服务端的尝试接口调用失败,可以确定存在分布式事务尝试操作处理失败,所述业务应用向所述事务协调器发送事务回滚请求,实现事务处理的整体性;当所述事务协调器接收到所述事务回滚请求,依次调用所述人员账号子服务端、所述人员状态子服务端和所述待办事务子服务端的回滚接口,实现事务处理的回滚,事务处理状态回到尝试状态,分布式事务中只要有一个处理失败就会进行回滚,实现事务处理的同步性。
87.需要说明的是,本公开的实施例还可以以下方式进一步描述:
88.如图1b所示,图1b为人员管理分布式事务处理模型的示意图,包括:业务应用、事务协调器、人员账号子服务端、人员状态子服务端、待办事务子服务端、查询账号信息子事务、查询人员状态子事务和查询待办事务子事务。
89.步骤1:所述业务应用向事务协调器发送启动事务的请求,所述业务应用和所述事务协调器开始处理分布式事务。
90.步骤2:所述业务应用分别调用所述人员账号子服务端、所述人员状态子服务端和所述待办事务子服务端对应的try接口,对所述人员账号子服务端、所述人员状态子服务端和所述待办事务子服务端分别对应的所述查询账号信息子事务、所述查询人员状态子事务和所述查询待办事务子事务进行处理。
91.步骤3:所述业务应用向所述事务协调器发送事务提交或回滚的请求。
92.步骤4:所述事务协调器分别调用所述人员账号子服务端、所述人员状态子服务端和所述待办事务子服务端对应的confirm接口或者cancel接口。当步骤2中所述人员账号子服务端、所述人员状态子服务端和所述待办事务子服务端的任一try接口调用失败,所述事务协调器则调用cancel接口进行回滚,当所述人员账号子服务端、所述人员状态子服务端和所述待办事务子服务端的try接口全部调用成功,所述事务协调器则调用confirm接口进行确认。
93.需要说明的是,本公开实施例的方法可以由单个设备执行,例如一台计算机或服务器等。本实施例的方法也可以应用于分布式场景下,由多台设备相互配合来完成。在这种分布式场景的情况下,这多台设备中的一台设备可以只执行本公开实施例的方法中的某一个或多个步骤,这多台设备相互之间会进行交互以完成所述的方法。
94.需要说明的是,上述对本公开的一些实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于上述实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定
要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
95.基于同一发明构思,与上述任意实施例方法相对应的,本公开还提供了一种分布式事务处理装置。
96.参考图2,所述分布式事务处理装置,包括:
97.开启模块201,被配置为所述业务应用开启所述分布式事务,其中,所述分布式事务包括:查询账号信息子事务、查询人员状态子事务和查询待办事务子事务;
98.尝试接口调用模块202,被配置为所述业务应用调用所述人员账号子服务端、所述人员状态子服务端和所述待办事务子服务端的尝试接口,所述人员账号子服务端依据所述人员账号子服务端的尝试接口对所述查询账号信息子事务进行尝试操作处理,所述人员状态子服务端依据所述人员状态子服务端的尝试接口对所述查询人员状态子事务进行尝试操作处理,所述待办事务子服务端依据所述待办事务子服务端的尝试接口对所述查询待办事务子事务进行尝试操作处理;
99.尝试接口判定模块203,被配置为所述业务应用对所述人员账号子服务端、所述人员状态子服务端和所述待办事务子服务端的尝试接口依次进行判断;
100.回滚请求发送模块204,被配置为响应于确定所述人员账号子服务端、所述人员状态子服务端和所述待办事务子服务端中任一服务端的尝试接口调用失败,确定任一分布式事务的尝试操作处理失败,所述业务应用向所述事务协调器发送事务回滚请求;
101.回滚接口调用模块205,被配置为响应于确定所述事务协调器接收到所述事务回滚请求,依次调用所述人员账号子服务端、所述人员状态子服务端和所述待办事务子服务端的回滚接口。
102.在一些实施例中,尝试接口调用模块202具体包括:
103.账号查询单元,被配置为所述人员账号子服务端依据所述人员账号子服务端的尝试接口对所述查询账号信息子事务进行尝试操作处理,用于查询人员账号信息,对人员账号进行监控管理;
104.状态查询单元,被配置为所述人员状态子服务端依据所述人员状态子服务端的尝试接口对所述查询人员状态子事务进行尝试操作处理,用于查询人员状态信息,对人员状态进行监控管理;
105.待办事务查询单元,被配置为所述待办事务子服务端依据所述待办事务子服务端的尝试接口对所述查询待办事务子事务进行尝试操作处理,用于查询人员待办事务信息,对人员待办事务进行监控管理;
106.其中,所述查询账号信息子事务与所述查询人员状态子事务按照处理逻辑先后执行。
107.在一些实施例中,回滚接口调用模块205之后,还包括:
108.尝试端口返回单元,被配置为所述业务应用返回重新调用所述人员账号子服务端、所述人员状态子服务端和所述待办事务子服务端的尝试端口,对所述查询账号信息子事务、所述查询人员状态子事务和所述查询待办事务子事务重新进行尝试操作处理。
109.在一些实施例中,尝试接口调用模块202之后,还包括:
110.空回滚单元,被配置为响应于确定所述业务应用网络超时,所述业务应用调用所
述尝试接口失败,所述事务协调器调用所述回滚接口,所述业务应用判定所述事务协调器调用的所述回滚接口为空回滚,并将所述分布式事务的状态设置为事务空回滚状态。
111.在一些实施例中,回滚接口调用模块205之后,还包括:
112.尝试接口重新调用单元,被配置为响应于确定所述业务应用网络恢复,所述业务应用重新调用服务端的尝试接口并重新向所述事务协调器发送对应的事务请求;
113.判定单元,被配置为所述事务协调器对所述回滚接口调用状态进行判断;
114.请求忽略单元,被配置为响应于确定所述回滚接口调用成功,所述事务协调器忽略重新发送的所述事务请求。
115.在一些实施例中,回滚接口调用模块205之后,还包括:
116.回滚接口重新调用单元,被配置为响应于确定所述事务协调器网络超时,所述回滚接口调用失败,所述事务协调器对所述回滚接口重新进行调用;
117.确认接口重新调用单元,被配置为响应于确定所述事务协调器网络超时,所述确认接口调用失败,所述事务协调器对所述确认接口重新进行调用。
118.在一些实施例中,回滚接口调用模块205之后,还包括:
119.状态设置单元,被配置为所述业务应用和所述事务协调器分别对分布式事务设置处理状态;
120.其中,所述业务应用向所述事务协调器发送启动事务请求后,设置所述分布式事务的状态为事务开启状态;所述业务应用调用所有服务端的尝试接口后,设置所述分布式事务的状态为事务尝试中状态;所述业务应用确定任一服务端的尝试接口调用失败后,设置所述分布式事务的状态为事务尝试失败状态;所述业务应用确定所有服务端的尝试接口调用成功,设置所述分布式事务的状态为事务尝试成功状态;所述事务协调器调用服务端的回滚接口后,设置所述分布式事务的状态为事务回滚完成状态;所述事务协调器调用服务端的确认接口,设置所述分布式事务的状态为事务确认完成状态。
121.为了描述的方便,描述以上装置时以功能分为各种模块分别描述。当然,在实施本公开时可以把各模块的功能在同一个或多个软件和/或硬件中实现。
122.上述实施例的装置用于实现前述任一实施例中相应的分布式事务处理方法,并且具有相应的方法实施例的有益效果,在此不再赘述。
123.基于同一发明构思,与上述任意实施例方法相对应的,本公开还提供了一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现上任意一实施例所述的分布式事务处理方法。
124.图3示出了本实施例所提供的一种更为具体的电子设备硬件结构示意图,该设备可以包括:处理器310、存储器320、输入/输出接口330、通信接口 340和总线350。其中处理器310、存储器320、输入/输出接口330和通信接口340通过总线350实现彼此之间在设备内部的通信连接。
125.处理器310可以采用通用的cpu(central processing unit,中央处理器)、微处理器、应用专用集成电路(application specific integrated circuit,asic)、或者一个或多个集成电路等方式实现,用于执行相关程序,以实现本说明书实施例所提供的技术方案。
126.存储器320可以采用rom(read only memory,只读存储器)、ram (random access memory,随机存取存储器)、静态存储设备,动态存储设备等形式实现。存储器320可以存储
操作系统和其他应用程序,在通过软件或者固件来实现本说明书实施例所提供的技术方案时,相关的程序代码保存在存储器320中,并由处理器310来调用执行。
127.输入/输出接口330用于连接输入/输出模块,以实现信息输入及输出。输入输出/模块可以作为组件配置在设备中(图中未示出),也可以外接于设备以提供相应功能。其中输入设备可以包括键盘、鼠标、触摸屏、麦克风、各类传感器等,输出设备可以包括显示器、扬声器、振动器、指示灯等。
128.通信接口340用于连接通信模块(图中未示出),以实现本设备与其他设备的通信交互。其中通信模块可以通过有线方式(例如usb、网线等)实现通信,也可以通过无线方式(例如移动网络、wifi、蓝牙等)实现通信。
129.总线350包括一通路,在设备的各个组件(例如处理器310、存储器320、输入/输出接口330和通信接口340)之间传输信息。
130.需要说明的是,尽管上述设备仅示出了处理器310、存储器320、输入/ 输出接口330、通信接口340以及总线350,但是在具体实施过程中,该设备还可以包括实现正常运行所必需的其他组件。此外,本领域的技术人员可以理解的是,上述设备中也可以仅包含实现本说明书实施例方案所必需的组件,而不必包含图中所示的全部组件。
131.上述实施例的电子设备用于实现前述任一实施例中相应的分布式事务处理方法,并且具有相应的方法实施例的有益效果,在此不再赘述。
132.基于同一发明构思,与上述任意实施例方法相对应的,本公开还提供了一种非暂态计算机可读存储介质,所述非暂态计算机可读存储介质存储计算机指令,所述计算机指令用于使所述计算机执行如上任一实施例所述的分布式事务处理方法。
133.本实施例的计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(pram)、静态随机存取存储器(sram)、动态随机存取存储器(dram)、其他类型的随机存取存储器(ram)、只读存储器(rom)、电可擦除可编程只读存储器(eeprom)、快闪记忆体或其他内存技术、只读光盘只读存储器(cd-rom)、数字多功能光盘(dvd)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。
134.上述实施例的存储介质存储的计算机指令用于使所述计算机执行如上任一实施例所述的分布式事务处理方法,并且具有相应的方法实施例的有益效果,在此不再赘述。
135.所属领域的普通技术人员应当理解:以上任何实施例的讨论仅为示例性的,并非旨在暗示本公开的范围(包括权利要求)被限于这些例子;在本公开的思路下,以上实施例或者不同实施例中的技术特征之间也可以进行组合,步骤可以以任意顺序实现,并存在如上所述的本公开实施例的不同方面的许多其它变化,为了简明它们没有在细节中提供。
136.另外,为简化说明和讨论,并且为了不会使本公开实施例难以理解,在所提供的附图中可以示出或可以不示出与集成电路(ic)芯片和其它部件的公知的电源/接地连接。此外,可以以框图的形式示出装置,以便避免使本公开实施例难以理解,并且这也考虑了以下事实,即关于这些框图装置的实施方式的细节是高度取决于将要实施本公开实施例的平台的(即,这些细节应当完全处于本领域技术人员的理解范围内)。在阐述了具体细节(例如,电路) 以描述本公开的示例性实施例的情况下,对本领域技术人员来说显而易见的是,可
以在没有这些具体细节的情况下或者这些具体细节有变化的情况下实施本公开实施例。因此,这些描述应被认为是说明性的而不是限制性的。
137.尽管已经结合了本公开的具体实施例对本公开进行了描述,但是根据前面的描述,这些实施例的很多替换、修改和变型对本领域普通技术人员来说将是显而易见的。例如,其它存储器架构(例如,动态ram(dram))可以使用所讨论的实施例。
138.本公开实施例旨在涵盖落入所附权利要求的宽泛范围之内的所有这样的替换、修改和变型。因此,凡在本公开实施例的精神和原则之内,所做的任何省略、修改、等同替换、改进等,均应包含在本公开的保护范围之内。
再多了解一些

本文用于创业者技术爱好者查询,仅供学习研究,如用于商业用途,请联系技术所有人。

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

相关文献