一种分布式事务处理方法及系统的制作方法

文档序号:6493708阅读:187来源:国知局
一种分布式事务处理方法及系统的制作方法
【专利摘要】本发明公开了一种分布式事务处理方法及系统。所述方法包括:分布式事务管理器创建分布式全局事务;业务数据管理器根据所述分布式全局事务创建对应的不少于一个的局部事务;业务处理单元将所述分布式全局事务和所述局部事务进行关联;分布式事务管理器发起所述分布式全局事务的提交或回滚操作。采用本发明,能够实现对单条业务请求具有循迹能力,可以实现一点提交后任一处理环节出现故障时自动回退,可以人为触发对指定条件的业务请求进行重做处理,缩短由于系统故障或配置数据错误造成的数据处理出错后系统恢复后的数据重做时间。
【专利说明】一种分布式事务处理方法及系统
【技术领域】
[0001]本发明涉及分布式计算【技术领域】,尤其涉及一种分布式事务处理方法及系统。
【背景技术】
[0002]目前,现有业务支撑系统(BOSS)的总体架构是基于责任链的设计模式。整个系统由各个业务处理单元组成流水线,上游程序产生的处理结果通过数据文件或表接口的方式传递到下游程序进行进一步处理。关键业务处理进程必须和关键业务数据部署在同一台应用主机上。即使要部署多台应用主机,也需要在每一台主机上部署所有的应用和应用所需的业务数据,然后按照一定的业务规则将待处理的业务数据分拣到不同的应用主机或是业务处理通道实现并发处理,共享信息保存在处理程序的私有内存中,各通道处理程序之间没有任何共享累计量的交互。这类系统事务处理程序相对复杂,每一个业务处理环节的事务处理是分离的,在数据处理完毕后,都会按要求生成接口文件或者接口表,然后提交事务。相同业务处理请求进入处理流水线后,可能对应不同环节不同的处理事务。
[0003]随着业务不断发展和复杂业务需求的逐步提出,现有系统架构主要存在以下不足:第一,不同的主机或不同的业务处理通道之间数据无法实现共享;第二,应用串行处理,环环相关,下一环节对上一环节的依赖程度太高,如果上一环节出现问题,该条处理通道就无法进行正常处理;第三,某个环节出现故障之后的恢复操作,基本上需要将整条通道进行重启,恢复时间长;第四,基于单条业务处理请求的处理过程循迹较难,系统出现故障时或者有特定需求的情况下,无法实现对单条请求或是指定特征的业务请求进行回退重做处理。

【发明内容】

[0004]为了解决现有技术中的技术问题,本发明提出一种事务处理方法及系统,能够实现分布式事务提交机制以保证事务的完整性,对单条业务请求具有循迹能力,可以实现一点提交后任一处理环节出现故障时自动回退,可以人为触发对指定条件的业务请求进行重做处理,缩短由于系统故障或配置数据错误造成的数据处理出错后系统恢复后的数据重做时间。
[0005]本发明的一个方面,提供一种分布式事务处理方法,包括:分布式事务管理器创建分布式全局事务;业务数据管理器根据所述分布式全局事务创建对应的不少于一个的局部事务;业务处理单元将所述分布式全局事务和所述局部事务进行关联;分布式事务管理器发起所述分布式全局事务的提交或回滚操作。
[0006]本发明的另一个方面,提供一种分布式事务处理系统,包括:包括分布式事务管理器、业务数据处理器、业务处理单元,其中,所述分布式事务管理器,用于创建分布式全局事务及发起所述分布式全局事务的提交或回滚操作;所述业务数据管理器,用于根据所述分布式全局事务创建对应的不少于一个的局部事务;所述业务处理单元,用于将所述分布式全局事务和所述局部事务进行关联。[0007]本发明的分布式事务处理方法及系统,通过将业务数据处理器创建的局部事务与分布式事务管理器创建的全局事务进行关联,由分布式事务管理器发起单点事务提交与回滚操作,可以实现事务处理的完整性与可循迹性,能够实现在分布式事务处理系统架构下实现事务一致性与完整性。
【专利附图】

【附图说明】
[0008]图1是本发明分布式事务处理方法实施例的流程图;
[0009]图2是本发明分布式事务处理方法优选实施例的流程图
[0010]图3是本发明分布式事务处理系统实施例的结构示意图。
【具体实施方式】
[0011]如图1所示,为本发明一种分布式事务处理方法实施例的流程图,包括以下步骤:
[0012]步骤101、分布式事务管理器创建分布式全局事务;
[0013]步骤102、业务数据管理器根据所述分布式全局事务创建对应的不少于一个的局部事务;
[0014]步骤103、业务处理单元将所述分布式全局事务和所述局部事务进行关联;
[0015]步骤104、分布式事务管理器发起所述分布式全局事务的提交或回滚操作。
[0016]在该实施例中,全局事务是指由业务控制单元管理的事务,它由多个参与到全局事务的局部事务组成。一个会话可以对应一个全局事务,一个流程执行可以对应一个全局事务,一个流程执行内的多个动作执行可以对应一个全局事务,但是一个动作执行仅能对应一个局部事务。局部事务是指由信息中心数据库或者局部事务管理器管理的本地事务,它体现了可回滚的一组资源操作边界。
[0017]该实施例通过将分布式事务管理器创建的全局事务与业务处理单元将业务数据管理器创建的局部事务进行关联,由分布式事务管理器发起事务的提交与回滚操作,能够实现事务的完整性与可循迹性,在分布式业务处理系统架构下能够实现事务一致性与完整性。
[0018]如图2所示,为本发明分布式事务处理方法的一种优选实施例,包括以下步骤:
[0019]步骤201、分布式事务管理器创建全局事务,所述全局事务包括全局事务上下文和全局事务ID ;
[0020]步骤202、分布式事务管理器记录全局事务ID与对应的处理数据的关系,并将所述全局事务ID发送至业务处理单元;
[0021]步骤203、业务处理单元根据所述全局事务ID向业务数据管理器发起局部事务的创建请求;
[0022]步骤204、所述业务数据管理器根据所述分布式全局事务创建对应的不少于一个的局部事务;
[0023]步骤205、所述业务处理单元将局部事务创建消息通知分布式事务管理器;
[0024]步骤206、通过业务处理单元将所述分布式全局事务ID和所述局部事务进行关联;
[0025]步骤207、所述分布式事务管理器对所述分布式全局事务关联的业务数据管理器发起局部事务提交或回滚;
[0026]步骤208、所述业务数据管理器提交或回滚所述局部事务;
[0027]步骤209、提交或回滚时对所述局部事务对应的数据库的操作获得的业务数据与信息中心数据库交互。
[0028]如果所述分布式全局事务无法关联局部事务,则向所有的业务数据管理器发起所述提交或回滚操作。
[0029]分布式事务处理是指一个事务可能涉及多个数据库操作,分布式事务处理的关键是必须有一种方法可以知道事务在任何地方所做的所有动作,提交或回滚事务的决定必须产生统一的结果(全部提交或全部回滚)。
[0030]通常把一个数据库内部的事务处理,如对多个表的操作,作为本地事务(局部事务)看待。数据库的事务处理对象是本地事务,而分布式事务处理的对象是全局事务。所谓全局事务,是指分布式事务处理环境中,多个数据库可能需要共同完成一个工作,这个工作即是一个全局事务。例如,一个事务中可能更新几个不同的数据库。对数据库的操作发生在系统的各处但必须全部被提交或回滚。此时一个数据库对自己内部所做操作的提交不仅依赖本身操作是否成功,还要依赖与全局事务相关的其它数据库的操作是否成功,如果任一数据库的任一操作失败,则参与此事务的所有数据库所做的所有操作都必须回滚。
[0031]通常情况下,交易中间件与数据库通过XA接口规范,使用两阶段提交来完成一个全局事务,XA规范的基础是两阶段提交协议。在第一阶段,交易中间件请求所有相关数据库准备提交(预提交)各自的事务分支,以确认是否所有相关数据库都可以提交各自的事务分支。当某一数据库收到预提交后,如果可以提交属于自己的事务分支,则将自己在该事务分支中所做的操作固定记录下来,并给交易中间件一个同意提交的应答,此时数据库将不能再在该事务分支中加入任何操作,但此时数据库并没有真正提交该事务,数据库对共享资源的操作还未释放(处于上锁状态)。如果由于某种原因数据库无法提交属于自己的事务分支,它将回滚自己的所有操作,释放对共享资源上的锁,并返回给交易中间件失败应答。在第二阶段,交易中间件审查所有数据库返回的预提交结果,如所有数据库都可以提交,交易中间件将要求所有数据库做正式提交,这样该全局事务被提交。而如果有任一数据库预提交返回失败,交易中间件将要求所有其它数据库回滚其操作,这样该全局事务被回滚。
[0032]但是在本实施例中,通过将与应用紧密相关的业务数据剥离出来建立信息中心数据库,将原来流水线式的业务处理过程控制能力单独部署为业务控制单元,把各个典型的业务处理环节能力解耦为单独能力并进行封装,采用简单分布式事务提交机制。分布式事务的提交与回滚由分布式事务管理器负责,各处理单元禁止提交或回滚事务,不支持业务数据管理器主动发起的启发式事务提交或回滚操作。一旦分布式事务管理器决定提交或回滚事务并记录状态后,将针对分布式事务涉及到的所有业务数据管理器发起局部事务提交并记录事务上下文。业务数据管理器对于已记录的分布式事务提交或回滚必须无条件执行,任何执行错误都被认为是系统故障。对于无法确定业务数据管理器的分布式事务回滚将向系统所在的所有业务数据管理器发起。这样就不需要传统的两阶段提交机制,在分布式管理框架下实现分布式事务提交机制能够保证事务的完整性,具备对单条业务请求的循迹能力,实现一点提交任一处理环节出现故障自动回退,还可以人为触发对指定条件的业务请求进行重做处理,大大缩短因为系统故障或者是配置数据有误造成的大面积数据处理出错以及系统恢复后的数据重做时间。
[0033]如图3所示,为本发明一种分布式事务处理系统实施例的结构示意图,包括分布式事务管理器301、业务数据处理器302、业务处理单元303,其中,
[0034]所述分布式事务管理器301,用于创建分布式全局事务及发起所述分布式全局事务的提交或回滚操作;所述业务数据管理器302,用于根据所述分布式全局事务创建对应的不少于一个的局部事务;所述业务处理单元303,用于将所述分布式全局事务和所述局部事务进行关联。
[0035]在该实施例中,引入分布式的业务处理系统架构,把原来与应用紧密相关的业务数据剥离出来建设信息中心即业务数据管理器302 ;把原来流水线式的业务处理过程控制能力剥离单独布署为业务控制单元,其中包括分布式事务管理器301 ;把各个典型的业务处理环节能力进行解藕,单独进行能力封装,即业务处理单元303。单独封装的业务能力可以灵活按能力进行单主机或是多主机部署为业务处理单元,也可以依据主机性能情况,打散了进行灵活部署,对外形成一个专业的业务处理能力资源池,供业务控制单元进行统一的过程调度。业务处理单元所有操作的业务数据将与信息中心进行交互,解决不同业务处理单元需要的业务数据共享类处理。
[0036]在整体系统架构调整的情况下,事务处理机制也相应需要做改造,实现分布式事务提交机制的事务管理机制以保证事务的完整性;具备对单条业务请求的循迹能力;实现一点提交,任一处理环节出故障自动回退;可以人为触发对指定条件的话单进行重做处理,大大缩短因为系统故障或是配置数据有误造成大面积数据处理出错、系统恢复后的数据重做时间。
[0037]在该实施例中,所述分布式全局事务包括全局事务上下文和全局事务ID ;所述业务处理单元用于将所述局部事务与所述全局事务ID相关联。所述业务处理单元进一步用于,根据所述分布式事务管理器发送的全局事务ID向所述业务数据管理器发起局部事务的创建请求;所述业务数据管理器进一步用于,根据所述创建请求创建局部事务;所述业务处理单元进一步用于,将局部事务创建通知分布式事务管理器。所述分布式事务管理器还用于,提交或回滚所述全局事务后,对所述分布式全局事务关联的业务数据管理器发起局部事务提交或回滚;所述业务数据管理器用于,提交或回滚所述局部事务。
[0038]如果所述分布式全局事务无法关联局部事务,则向所有的业务数据管理器发起所述提交或回滚操作。
[0039]应说明的是:以上实施例仅用以说明本发明而非限制,本发明也并不仅限于上述举例,一切不脱离本发明的精神和范围的技术方案及其改进,其均应涵盖在本发明的权利要求范围中。
【权利要求】
1.一种分布式事务处理方法,其特征在于,包括: 分布式事务管理器创建分布式全局事务; 业务数据管理器根据所述分布式全局事务创建对应的不少于一个的局部事务; 业务处理单元将所述分布式全局事务和所述局部事务进行关联; 分布式事务管理器发起所述分布式全局事务的提交或回滚操作。
2.根据权利要求1所述的方法,其特征在于, 所述分布式全局事务包括全局事务上下文和全局事务ID ; 通过业务处理单元将所述分布式全局事务和所述局部事务进行关联的步骤包括: 将所述局部事务与所述全局事务ID相关联。
3.根据权利要求2所述的方法,其特征在于,所述业务数据管理器根据所述分布式全局事务创建对应的不少于一个的局部事务的步骤进一步包括: 所述业务处理单元根据所述分布式事务管理器发送的全局事务ID向所述业务数据管理器发起局部事务的创建请求; 所述业务数据管理器根据所述创建请求创建局部事务; 所述业务处理单元将局部事务创建通知分布式事务管理器。
4.根据权利要求1至3任一所述的方法,其特征在于,所述方法还包括: 所述分布式事务管理器提交或回滚所述全局事务后,对所述分布式全局事务关联的业务数据管理器发起局部事务提交或回滚; 所述业务数据管理器提交或回滚所述局部事务。
5.根据权利要求4所述的方法,其特征在于,所述方法还包括: 如果所述分布式全局事务无法关联局部事务,则向所有的业务数据管理器发起所述提交或回滚操作。
6.一种分布式事务处理系统,其特征在于,包括分布式事务管理器、业务数据处理器、业务处理单元,其中, 所述分布式事务管理器,用于创建分布式全局事务及发起所述分布式全局事务的提交或回滚操作; 所述业务数据管理器,用于根据所述分布式全局事务创建对应的不少于一个的局部事务; 所述业务处理单元,用于将所述分布式全局事务和所述局部事务进行关联。
7.根据权利要求6所述的系统,其特征在于, 所述分布式全局事务包括全局事务上下文和全局事务ID ; 所述业务处理单元用于将所述局部事务与所述全局事务ID相关联。
8.根据权利要求7所述的系统,其特征在于, 所述业务处理单元进一步用于,根据所述分布式事务管理器发送的全局事务ID向所述业务数据管理器发起局部事务的创建请求; 所述业务数据管理器进一步用于,根据所述创建请求创建局部事务; 所述业务处理单元进一步用于,将局部事务创建通知分布式事务管理器。
9.根据权利要求6至8任一所述的系统,其特征在于, 所述分布式事务管理器还用于,提交或回滚所述全局事务后,对所述分布式全局事务关联的业务数据管理器发起局部事务提交或回滚; 所述业务数据管理器用于,提交或回滚所述局部事务。
10.根据权利要求9所述的系统,其特征在于, 所述分布式事务管理器还用于,如果所述分布式全局事务无法关联局部事务,则向所有的业务数据管理器发起所述提交或回滚操作。
【文档编号】G06F17/30GK103902560SQ201210575023
【公开日】2014年7月2日 申请日期:2012年12月25日 优先权日:2012年12月25日
【发明者】阮前 申请人:中国移动通信集团福建有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1