基于单元化的分布式事务处理系统及方法与流程

文档序号:32896578发布日期:2023-01-13 00:32阅读:74来源:国知局
基于单元化的分布式事务处理系统及方法与流程

1.本发明涉及数据访问技术领域,具体地,涉及一种基于单元化的分布式事务处理系统及方法。


背景技术:

2.通常在进行分布式部署后,会存在多个服务共同完成一个事务的操作,并且这些服务彼此都存在于不同的服务器或者网络环境,业内大多使用tcc或者saga等方法解决。
3.专利文献cn105892957a公开一种基于动态分片的分布式事务执行方法,在每个数据中心的数据库管理服务器中部署有用于控制和管理对事务的动态事务分片单元,动态事务分片单元包括动态分片模块和动态冲突分析模块,采用动态事务分片单元处理来自应用服务器的事务请求,对该事务请求进行动态分片和动态冲突分析,随后对分片后的事务采用分片执行模块进行执行,并在数据库存储器上执行具体的数据访问操作。
4.但是,现有的分布式实物执行方法中存在性能不高、维护成本高及使用局限性的缺陷和不足。


技术实现要素:

5.针对现有技术中的缺陷,本发明的目的是提供一种基于单元化的分布式事务处理系统及方法。
6.根据本发明提供的一种基于单元化的分布式事务处理系统,包括:公共处理模块、事务处理模块、基础服务模块和事务信息模块。
7.所述公共处理模块获取事务处理信息并分发至事务处理模块处理,然后通过基础服务模块在各个事务中调度,调用下游服务接口,同时事务信息模块将此次的调用记录进行持久化;
8.所述调用记录包括被调用事务的基本信息及执行进度,并数据共享给各个模块。
9.优选地,还包括:同步异常处理模块、异步异常处理模块和中断恢复模块;
10.当出现未决的子事务时,同步异常处理模块会通过定时任务进行结果同步,若结果为失败时,则通过异步异常处理模块进行异常处理;若结果为成功时,则通过中断恢复模块继续处理后续子流程。
11.优选地,所述公共处理模块包括:事务分发器模块、获取事务处理器模块和事务生命周期管理模块;
12.所述事务分发器模块用于贯穿整个链路的始终;
13.所述获取事务处理器模块用于获取对应的事务处理器;
14.所述事务生命周期管理模块用于监控整个事务的生命周期。
15.优选地,所述事务处理模块包括:事务加载模块、事务动态调度模块和处理器自动化配置模块;
16.所述事务加载模块在项目启动时,将所有事务处理器和事务请求模板加载至监听
器中;
17.所述事务动态调度模块通过内部单元化算法,以单元为服务部署的基本单位,将事务请求负载均衡到下游关联服务;
18.所述处理器自动化配置模块用于基本流程的配置,自动化配置生成对应的处理器。
19.优选地,同步异常处理模块,当事务发生异常时,由事务分发器模块调用并依据事务信息模块中记录的操作信息和异常信息执行相应回滚或补偿步骤;
20.异步异常处理模块,对于无法及时获知请求结果的异常,通过异步定时任务定时查询并处理未决交易;对于实时性要求不高的回滚操作,通过异常任务定时回滚冲正交易;
21.中断恢复模块,在系统故障时未正常更新交易结果的交易,通过中断恢复机制以及根据记录的操作记录,恢复交易或者进行相应的异常处理。
22.根据本发明提供的一种基于单元化的分布式事务处理方法,包括:
23.步骤s1:获取事务信息并分发至事务处理器;
24.步骤s2:事务处理器接收所述事务信息并进行处理,并将匹配对应的基础服务;
25.步骤s3:调用所述基础服务并执行,同时记录当前执行步骤至事务信息模块。
26.优选地,还包括:同步异常处理步骤、异步异常处理步骤和中断恢复步骤;
27.当出现未决的子事务时,通过同步异常处理步骤定时任务进行结果同步并判断所述结果是成功,若否,则触发异步异常处理步骤进行异常处理;若是,则触发中断恢复步骤继续处理后续子流程。
28.优选地,所述事务信息通过拉起具体的事务场景得到;
29.在获取所述事务信息的同时触发事务生命周期管理步骤,监控整个事务的生命周期。
30.优选地,所述处理包括:
31.事务加载步骤:在项目启动时,将所有事务处理器和事务请求模板加载至监听器中;
32.事务动态调度步骤:通过内部单元化算法,以单元为服务部署的基本单位,将事务请求负载均衡到下游关联服务;
33.处理器自动化配置步骤:配置基本流程,自动化配置生成对应的处理器。
34.优选地,所述同步异常处理步骤:当事务发生异常时,由事务分发器模块调用并依据事务信息模块中记录的操作信息和异常信息执行相应回滚或补偿步骤;
35.异步异常处理步骤:对于无法及时获知请求结果的异常,通过异步定时任务定时查询并处理未决交易;对于实时性要求不高的回滚操作,通过异常任务定时回滚冲正交易;
36.中断恢复步骤,在系统故障时未正常更新交易结果的交易,通过中断恢复机制以及根据记录的操作记录,恢复交易或者进行相应的异常处理。
37.与现有技术相比,本发明具有如下的有益效果:
38.1、本发明通过分布式事务一致性的分发器全链路跟踪事务的执行过程,满足了包括单元化应用架构在内的分布式事务,对于不同业务场景的事务的个性化处理。
39.2、本发明通过各个模块的连接执行,使得单元化服务的事务既可以满足数据库层面的最终一致性,也可以保证应用层面业务实现的最终一致性。
40.3、本发明通过应用可以自定义操作的粒度,降低了数据层面锁的冲突问题,提升业务并发度,同时对应用的侵入性不强,可以很好的满足性能问题。
附图说明
41.通过阅读参照以下附图对非限制性实施例所作的详细描述,本发明的其它特征、目的和优点将会变得更明显:
42.图1为本发明的工作流程示意图。
43.图2为本发明正常情况下的流程示意图。
44.图3为本发明异常情况下的流程示意图。
具体实施方式
45.下面结合具体实施例对本发明进行详细说明。以下实施例将有助于本领域的技术人员进一步理解本发明,但不以任何形式限制本发明。应当指出的是,对本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变化和改进。这些都属于本发明的保护范围。
46.本发明通过分布式事务一致性的分发器openapidispatcher,来满足包括单元化应用架构在内的分布式事务,该分发器用于全链路跟踪事务的执行过程,对于不同业务场景的事务,通过实现iopenapiprocessor接口来满足事务的个性化处理。该解决方案包含如下模块:事务加载模块、事务分发器模块、获取事务处理器模块、事务信息模块、基础服务模块、同步异常处理模块、事务动态调度模块、异步异常处理模块、中断恢复机制、处理器自动化配置功能、事务生命周期管理。如此保证单元化服务的事务既可以满足数据库层面的最终一致性,也可以保证应用层面业务实现的最终一致性。
47.本发明在满足单元化架构的基础上,结合了处理器自动化配置模块将分布式事务按照模板对子事务调用顺序进行配置,当项目启动后,事务加载模块把所有配置好的分布式事务场景加载到内存中,项目通过事务分发器模块拉起具体的事务场景获取事务处理器,同时触发事务生命周期管理模块,用于监控整个事务的生命周期,然后根据事务动态调度模块调用各个子事务,每个子事务都是一个基础服务模块,当基础服务模块被调用时,事务信息模块就会将此次的调用记录进行持久化。当出现未决的子事务时,同步异常处理模块会通过定时任务进行结果同步,结果为失败时将通过异步异常处理模块进行异常处理,结果为成功时将通过中断恢复机制继续处理后续子流程。
48.实施例一
49.根据本发明提供的一种基于单元化的分布式事务处理系统,如图1至图3所示,包括:公共处理模块、事务处理模块、基础服务模块和事务信息模块。所述公共处理模块获取事务处理信息并分发至事务处理模块处理,然后通过基础服务模块在各个事务中调度,调用下游服务接口,同时事务信息模块将此次的调用记录进行持久化。所述调用记录包括被调用事务的基本信息及执行进度,并数据共享给各个模块。
50.其中,公共处理模块包括:事务分发器模块、获取事务处理器模块和事务生命周期管理模块。所述事务分发器模块用于贯穿整个链路的始终。所述获取事务处理器模块用于获取对应的事务处理器。所述事务生命周期管理模块用于监控整个事务的生命周期。
51.事务处理模块包括:事务加载模块、事务动态调度模块和处理器自动化配置模块。所述事务加载模块在项目启动时,将所有事务处理器和事务请求模板加载至监听器中。所述事务动态调度模块通过内部单元化算法,以单元为服务部署的基本单位,将事务请求负载均衡到下游关联服务;。所述处理器自动化配置模块用于基本流程的配置,自动化配置生成对应的处理器。
52.本发明系统中还包括:同步异常处理模块、异步异常处理模块和中断恢复模块。
53.具体地,如图2和图3所示,当出现未决的子事务时,同步异常处理模块会通过定时任务进行结果同步,若结果为失败时,则通过异步异常处理模块进行异常处理;若结果为成功时,则通过中断恢复模块继续处理后续子流程。
54.进一步地,同步异常处理模块,当事务发生异常时,由事务分发器模块调用并依据事务信息模块中记录的操作信息和异常信息执行相应回滚或补偿步骤。异步异常处理模块,对于无法及时获知请求结果的异常,通过异步定时任务定时查询并处理未决交易;对于实时性要求不高的回滚操作,通过异常任务定时回滚冲正交易。中断恢复模块,在系统故障时未正常更新交易结果的交易,通过中断恢复机制以及根据记录的操作记录,恢复交易或者进行相应的异常处理。
55.另外,针对本发明中系统的各个模块进一步描述说明:
56.事务加载模块:项目启动时,该模块通过@apiprocessortag标签和@formattag标签将所有事务处理器和事务请求模板加载至监听器中。
57.事务分发器模块:模块主要功能是贯穿整个链路的始终,包括初始化、事务模板解析、幂等校验、事务持久化、构造响应、异常处理等。
58.获取事务处理器模块:模块在事务请求模板解析后,根据处理器id获取对应的事务处理器。
59.事务信息模块:记录事务的一些基本信息及执行进度,以便各个模块间实现数据共享。
60.基础服务模块:在各个事务中调度,调用下游服务接口以实现基础操作。以@basicservicetag标签和@etradetransactiontag标签为记号,通过切面记录当前操作的步骤至事务信息模块。
61.同步异常处理模块:当事务发生异常时,由事务分发器模块调用,依据事务信息模块中记录的操作信息和异常信息执行相应回滚或补偿步骤。
62.事务动态调度模块:通过内部单元化算法,以单元为服务部署的基本单位,将事务请求负载均衡到下游关联服务。涉及数据库单元化、下游对接服务单元化。解决存储、性能瓶颈的同时,分而治之、故障隔离、互不干扰的优势也大大降低故障的影响范围。
63.异步异常处理模块:对于无法及时获知请求结果的异常,通过异步定时任务,定时查询并处理未决交易,提供系统达成率。对于实时性要求不高的回滚操作,通过异常任务,定时回滚冲正交易,提供系统性能。
64.中断恢复模块:基于事务信息模块,每次请求基础服务前记录操作日志。在系统故障,未正常更新交易结果的交易。通过中断恢复机制,根据记录的操作记录,恢复交易或者进行相应的异常处理。
65.处理器自动化配置模块:通过excel进行基本流程的配置,自动化配置生成对应的
处理器,无须手动编写代码。
66.事务生命周期管理模块:定义事务生命周期,并对其进行管理。每个事务严格按照预定的生命周期状态流程进行推进执行,涉及到的每一步骤都通过切面记录并持久化,保证事务每一步骤可定位、可追溯。对于执行失败的事务,亦可通过所记录的生命周期状态,进行异常的修复与补偿。
67.实施例二
68.根据本发明提供的一种基于单元化的分布式事务处理方法,包括:
69.步骤s1:获取事务信息并分发至事务处理器。具体地,事务信息通过拉起具体的事务场景得到;在获取所述事务信息的同时触发事务生命周期管理步骤,监控整个事务的生命周期。
70.步骤s2:事务处理器接收所述事务信息并进行处理,并将匹配对应的基础服务。具体地,该处理步骤包括:事务加载步骤:在项目启动时,将所有事务处理器和事务请求模板加载至监听器中。事务动态调度步骤:通过内部单元化算法,以单元为服务部署的基本单位,将事务请求负载均衡到下游关联服务。处理器自动化配置步骤:配置基本流程,自动化配置生成对应的处理器。
71.步骤s3:调用所述基础服务并执行,同时记录当前执行步骤至事务信息模块。
72.另外,本发明方法还包括:同步异常处理步骤、异步异常处理步骤和中断恢复步骤;当出现未决的子事务时,通过同步异常处理步骤定时任务进行结果同步并判断所述结果是成功,若否,则触发异步异常处理步骤进行异常处理;若是,则触发中断恢复步骤继续处理后续子流程。其中,同步异常处理步骤:当事务发生异常时,由事务分发器模块调用并依据事务信息模块中记录的操作信息和异常信息执行相应回滚或补偿步骤。
73.异步异常处理步骤:对于无法及时获知请求结果的异常,通过异步定时任务定时查询并处理未决交易;对于实时性要求不高的回滚操作,通过异常任务定时回滚冲正交易;
74.中断恢复步骤,在系统故障时未正常更新交易结果的交易,通过中断恢复机制以及根据记录的操作记录,恢复交易或者进行相应的异常处理。
75.本领域技术人员知道,除了以纯计算机可读程序代码方式实现本发明提供的系统、装置及其各个模块以外,完全可以通过将方法步骤进行逻辑编程来使得本发明提供的系统、装置及其各个模块以逻辑门、开关、专用集成电路、可编程逻辑控制器以及嵌入式微控制器等的形式来实现相同程序。所以,本发明提供的系统、装置及其各个模块可以被认为是一种硬件部件,而对其内包括的用于实现各种程序的模块也可以视为硬件部件内的结构;也可以将用于实现各种功能的模块视为既可以是实现方法的软件程序又可以是硬件部件内的结构。
76.以上对本发明的具体实施例进行了描述。需要理解的是,本发明并不局限于上述特定实施方式,本领域技术人员可以在权利要求的范围内做出各种变化或修改,这并不影响本发明的实质内容。在不冲突的情况下,本技术的实施例和实施例中的特征可以任意相互组合。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1