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

一种通过代理实现分布式事务协调的方法及装置与流程

2022-02-20 06:14:07 来源:中国专利 TAG:


1.本发明涉及云安全管理平台技术领域,尤其是一种通过代理实现分布式事务协调的方法及装置,适用于java微服务架构。


背景技术:

2.传统云安全管理平台,单体架构所有服务功能都聚合在一起,导致系统开发成本高,测试成本高,可靠性差,可伸缩性差。随着微服务架构的发展,越来越多的云安全管理业务选择微服务部署,提高了系统的可靠性,容错性和可伸缩性,但是从业务安全方面考虑,各个微服务之间事务保持一致性,业务一致性和幂等性,都是有必要保证和管理的。
3.现有方案中,对于微服务架构各个系统的事务,所有传统的方法都无法保证一次业务操作在各个子业务的一致性。对于各个微服务中重要业务模块,一次业务操作在各个分布式微服务系统中无法保证业务操作的最终一致性。


技术实现要素:

4.为解决现有方案存在的上述问题,本发明提供一种通过代理实现分布式事务协调的方法及装置,通过全局事务控制系统管理并感知系统中各个微服务系统之间的调用关系,能够保证数据库事务原子性操作。
5.为实现上述目的,本发明采用下述技术方案:
6.在本发明一实施例中,提出了一种通过代理实现分布式事务协调的方法,该方法包括:
7.某个微服务系统开启分布式事务,与全局事务控制系统建立长连接,并生成事务组id;
8.其他各个微服务系统执行业务方法,根据当前业务操作状态生成事务信息,与事务组id封装成消息发送给全局事务控制系统,并加入档期事务组中;
9.某个微服务系统执行完毕后,向全局事务控制系统发送提交结束事务通知;
10.全局事务控制系统接收到结束事务通知后,将判断各个微服务系统中各个事务的状态,并判断当前全链路的事务状态,并向各个微服务系统发送事务提交或回滚通知;
11.各个微服务系统接收到事务提交或回滚通知后,执行最终的事务提交或者回滚操作。
12.进一步地,某个微服务系统开启分布式事务,与全局事务控制系统建立长连接,并生成事务组id,包括:
13.某个微服务系统开启分布式事务;
14.该微服务系统执行业务方法,并在业务方法上添加事务的注解,当方法执行时通过aop代理获取事务信息;
15.该微服务系统执行完毕后,则将事务信息封装成消息后发送给全局事务控制系统;
16.全局事务控制系统接收到事务消息后,与该微服务系统建立长连接;
17.全局事务控制系统创建档期事务组,并将事务组id传递给某个微服务系统。
18.进一步地,其他各个微服务系统执行业务方法,根据当前业务操作状态生成事务信息,与事务组id封装成消息发送给全局事务控制系统,并加入档期事务组中,包括:
19.某个微服务系统调用其他各个微服务系统后,将事务组id传递给其他各个微服务系统;
20.其他各个微服务系统执行业务方法,根据当前业务操作状态生成事务信息,与事务组id封装成消息发送给全局事务控制系统;
21.全局事务控制系统判断当前微服务系统携带事务组id,认为其是分支事务,将其加入档期事务组中。
22.进一步地,全局事务控制系统接收到结束事务通知后,将判断各个微服务系统中各个事务的状态,并判断当前全链路的事务状态,并向各个微服务系统发送事务提交或回滚通知,包括:
23.全局事务控制系统接收到结束事务通知后,根据各个微服务系统发送的事务消息,判断各个微服务系统中各个事务的状态,并判断当前全链路的事务状态;
24.若当前全链路的事务状态为成功,则通知各个微服务系统提交事务;否则通知各个微服务系统将事务回滚。
25.在本发明一实施例中,还提出了一种通过代理实现分布式事务协调的装置,该装置包括:
26.微服务模块,用于某个微服务系统开启分布式事务,与全局事务控制系统建立长连接,并生成事务组id;其他各个微服务系统执行业务方法,根据当前业务操作状态生成事务信息,与事务组id封装成消息发送给全局事务控制系统,并加入档期事务组中;某个微服务系统执行完毕后,向全局事务控制系统发送提交结束事务通知;各个微服务系统接收到事务提交或回滚通知后,执行最终的事务提交或者回滚操作;
27.全局事务控制系统,用于接收到结束事务通知后,将判断各个微服务系统中各个事务的状态,并判断当前全链路的事务状态,并向各个微服务系统发送事务提交或回滚通知。
28.进一步地,某个微服务系统开启分布式事务,与全局事务控制系统建立长连接,并生成事务组id,包括:
29.某个微服务系统开启分布式事务;
30.该微服务系统执行业务方法,并在业务方法上添加事务的注解,当方法执行时通过aop代理获取事务信息;
31.该微服务系统执行完毕后,则将事务信息封装成消息后发送给全局事务控制系统;
32.全局事务控制系统接收到事务消息后,与该微服务系统建立长连接;
33.全局事务控制系统创建档期事务组,并将事务组id传递给某个微服务系统。
34.进一步地,其他各个微服务系统执行业务方法,根据当前业务操作状态生成事务信息,与事务组id封装成消息发送给全局事务控制系统,并加入档期事务组中,包括:
35.某个微服务系统调用其他各个微服务系统后,将事务组id传递给其他各个微服务
系统;
36.其他各个微服务系统执行业务方法,根据当前业务操作状态生成事务信息,与事务组id封装成消息发送给全局事务控制系统;
37.全局事务控制系统判断当前微服务系统携带事务组id,认为其是分支事务,将其加入档期事务组中。
38.进一步地,全局事务控制系统接收到结束事务通知后,将判断各个微服务系统中各个事务的状态,并判断当前全链路的事务状态,并向各个微服务系统发送事务提交或回滚通知,包括:
39.全局事务控制系统接收到结束事务通知后,根据各个微服务系统发送的事务消息,判断各个微服务系统中各个事务的状态,并判断当前全链路的事务状态;
40.若当前全链路的事务状态为成功,则通知各个微服务系统提交事务;否则通知各个微服务系统将事务回滚。
41.在本发明一实施例中,还提出了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行计算机程序时实现前述通过代理实现分布式事务协调的方法。
42.在本发明一实施例中,还提出了一种计算机可读存储介质,计算机可读存储介质存储有执行通过代理实现分布式事务协调的方法的计算机程序。
43.有益效果:
44.1、本发明将分布式微服务中各个微服务系统串联起来,在全局事务控制系统中实现同一个事务管理各个微服务系统事务。
45.2、本发明将各个微服务系统事务处理结果上报到全局事务控制系统,全局事务控制系统能够根据业务在不同微服务系统中的处理结果进行全局事务判断,保证业务结果原子性和一致性。
附图说明
46.图1是本发明一实施例的通过代理实现分布式事务协调的方法流程示意图;
47.图2是本发明一实施例的通过代理实现分布式事务协调的装置结构示意图;
48.图3是本发明一实施例的计算机设备结构示意图。
具体实施方式
49.下面将参考若干示例性实施方式来描述本发明的原理和精神,应当理解,给出这些实施方式仅仅是为了使本领域技术人员能够更好地理解进而实现本发明,而并非以任何方式限制本发明的范围。相反,提供这些实施方式是为了使本公开更加透彻和完整,并且能够将本公开的范围完整地传达给本领域的技术人员。
50.本领域技术人员知道,本发明的实施方式可以实现为一种系统、装置、设备、方法或计算机程序产品。因此,本公开可以具体实现为以下形式,即:完全的硬件、完全的软件(包括固件、驻留软件、微代码等),或者硬件和软件结合的形式。
51.根据本发明的实施方式,提出了一种通过代理实现分布式事务协调的方法及装置,某个微服务系统开启分布式事务后,将事务消息发送给全局事务控制系统;各个微服务
系统将本地事务信息发送给全局事务控制系统;全局事务控制系统对所有微服务系统处理业务后的事务结果进行关联分析,根据各个微服务系统的事务结果进行统一判断;判断当某个微服务系统出现异常后,将通知各个微服务系统将事务回滚,所有事务都成功后将事务进行提交,提高了微服务架构下事务的一致性及正确性。
52.下面参考本发明的若干代表性实施方式,详细阐释本发明的原理和精神。
53.图1是本发明一实施例的通过代理实现分布式事务协调的方法流程示意图。如图1所示,通过动态代理技术将各自微服务系统的执行情况和事务信息传递给全局事务控制系统,全局事务控制系统决定最终事务状态,其具体流程如下:
54.1、微服务系统a开启分布式事务,与全局事务控制系统建立长连接,并生成事务组id;
55.2、微服务系统b执行业务方法,根据当前业务操作状态生成事务信息,与事务组id封装成消息发送给全局事务控制系统,
56.3、全局事务控制系统接收到微服务系统b发送的消息后,将微服务系统b加入到档期事务组中;
57.4、微服务系统c执行业务方法,根据当前业务操作状态生成事务信息,与事务组id封装成消息发送给全局事务控制系统,
58.5、全局事务控制系统接收到微服务系统c发送的消息后,将微服务系统c加入到档期事务组中;
59.6、微服务系统a执行完毕后,向全局事务控制系统发送提交结束事务通知;
60.7、全局事务控制系统接收到结束事务通知后,将判断微服务系统a、b、c中各个事务的状态,并判断当前全链路的事务状态,并向微服务系统a、b、c发送事务提交或回滚通知;
61.8、微服务系统a、b、c接收到事务提交或回滚通知后,执行最终的事务提交或者回滚操作。
62.需要说明的是,尽管在上述实施例及附图中以特定顺序描述了本发明方法的操作,但是,这并非要求或者暗示必须按照该特定顺序来执行这些操作,或是必须执行全部所示的操作才能实现期望的结果。附加地或备选地,可以省略某些步骤,将多个步骤合并为一个步骤执行,和/或将一个步骤分解为多个步骤执行。
63.为了对上述基于新型城域网拓扑快速生成功能配置的方法进行更为清楚的解释,下面结合一个具体的实施例来进行说明,然而值得注意的是该实施例仅是为了更好地说明本发明,并不构成对本发明不当的限定。
64.具体方案如下:
65.1、微服务系统a开启分布式事务;微服务系统a执行业务方法,并在业务方法上添加事务的注解,当方法执行时通过aop(aspect oriented program)代理获取事务信息;
66.2、微服务系统a执行完毕后,则将事务信息封装成消息后发送给全局事务控制系统;全局事务控制系统接收到事务消息后,与微服务系统a建立长连接;全局事务控制系统创建档期事务组,并将事务组id传递给微服务系统a;微服务系统a通过aop代理后执行数据库操作,这一步并不真正操作数据库真实事务,即对事务进行管理,并不提交真实事务;
67.3、微服务系统a调用微服务系统b后,将事务组id传递给微服务系统b;微服务系统
b执行业务方法,根据当前业务操作状态生成事务信息,与事务组id封装成消息发送给全局事务控制系统;全局事务控制系统判断当前微服务系统b携带事务组id,认为其是分支事务,将其加入档期事务组中;微服务系统b通过aop代理后执行数据库操作,这一步并不真正操作数据库真实事务,即对事务进行管理,并不提交真实事务;
68.4、微服务系统c的处理同微服务系统b,直至微服务系统a调用完毕;微服务系统a执行完毕后,向全局事务控制系统发送提交结束事务通知;
69.5、全局事务控制系统接收到结束事务通知后,根据微服务系统a、b、c发送的事务消息,判断微服务系统a、b、c中各个事务的状态,并判断当前全链路的事务状态;若当前全链路的事务状态为成功,则通知各个微服务系统提交事务;否则通知各个微服务系统将事务回滚。
70.基于同一发明构思,本发明还提出一种通过代理实现分布式事务协调的装置。该装置的实施可以参见上述方法的实施,重复之处不再赘述。以下所使用的术语“模块”,可以是实现预定功能的软件和/或硬件的组合。尽管以下实施例所描述的装置较佳地以软件来实现,但是硬件,或者软件和硬件的组合的实现也是可能并被构想的。
71.图2是本发明一实施例的通过代理实现分布式事务协调的装置结构示意图。如图2所示,该装置包括:
72.微服务模块101,用于某个微服务系统开启分布式事务,与全局事务控制系统建立长连接,并生成事务组id;其他各个微服务系统执行业务方法,根据当前业务操作状态生成事务信息,与事务组id封装成消息发送给全局事务控制系统,并加入档期事务组中;某个微服务系统执行完毕后,向全局事务控制系统发送提交结束事务通知;各个微服务系统接收到事务提交或回滚通知后,执行最终的事务提交或者回滚操作;具体如下:
73.某个微服务系统开启分布式事务;
74.该微服务系统执行业务方法,并在业务方法上添加事务的注解,当方法执行时通过aop代理获取事务信息;
75.该微服务系统执行完毕后,则将事务信息封装成消息后发送给全局事务控制系统;
76.全局事务控制系统接收到事务消息后,与该微服务系统建立长连接;
77.全局事务控制系统创建档期事务组,并将事务组id传递给某个微服务系统。
78.某个微服务系统调用其他各个微服务系统后,将事务组id传递给其他各个微服务系统;
79.其他各个微服务系统执行业务方法,根据当前业务操作状态生成事务信息,与事务组id封装成消息发送给全局事务控制系统;
80.全局事务控制系统判断当前微服务系统携带事务组id,认为其是分支事务,将其加入档期事务组中。
81.某个微服务系统执行完毕后,向全局事务控制系统发送提交结束事务通知。
82.各个微服务系统接收到事务提交或回滚通知后,执行最终的事务提交或者回滚操作。
83.全局事务控制系统102,用于接收到结束事务通知后,将判断各个微服务系统中各个事务的状态,并判断当前全链路的事务状态,并向各个微服务系统发送事务提交或回滚
通知;具体如下:
84.全局事务控制系统102接收到结束事务通知后,根据各个微服务系统发送的事务消息,判断各个微服务系统中各个事务的状态,并判断当前全链路的事务状态;
85.若当前全链路的事务状态为成功,则通知各个微服务系统提交事务;否则通知各个微服务系统将事务回滚。
86.应当注意,尽管在上文详细描述中提及了通过代理实现分布式事务协调的装置的若干模块,但是这种划分仅仅是示例性的并非强制性的。实际上,根据本发明的实施方式,上文描述的两个或更多模块的特征和功能可以在一个模块中具体化。反之,上文描述的一个模块的特征和功能可以进一步划分为由多个模块来具体化。
87.基于前述发明构思,如图3所示,本发明还提出一种计算机设备200,包括存储器210、处理器220及存储在存储器210上并可在处理器220上运行的计算机程序230,处理器220执行计算机程序230时实现前述通过代理实现分布式事务协调的方法。
88.基于前述发明构思,本发明还提出一种计算机可读存储介质,计算机可读存储介质存储有执行前述通过代理实现分布式事务协调的方法的计算机程序。
89.本发明提出的通过代理实现分布式事务协调的方法及装置,基于代理实现分布式事务协调的方法,通过java动态代理技术实现微服务事务状态的上报,全局事务控制系统管理和分析各个微服务系统的事务状态进行全局事务状态的回滚或者提交,可以达到分布式事务最终一致性,方案更简单,更通用。
90.虽然已经参考若干具体实施方式描述了本发明的精神和原理,但是应该理解,本发明并不限于所公开的具体实施方式,对各方面的划分也不意味着这些方面中的特征不能组合以进行受益,这种划分仅是为了表述的方便。本发明旨在涵盖所附权利要求的精神和范围内所包含的各种修改和等同布置。
91.对本发明保护范围的限制,所属领域技术人员应该明白,在本发明的技术方案的基础上,本领域技术人员不需要付出创造性劳动即可做出的各种修改或变形仍在本发明的保护范围以内。
再多了解一些

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

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

相关文献