一种基于子事务流的分布式事务动态处理方法和系统技术方案

技术编号:20621917 阅读:47 留言:0更新日期:2019-03-20 14:08
本发明专利技术公开了一种基于子事务流的分布式事务动态处理方法,包括以下步骤:业务系统将分布式事务拆分为多个子事务;建立事务协调器,业务系统将多个所述子事务发送给所述事务协调器,事务协调器对多个所述子事务进行解析,确定多个所述子事务所需的前置执行条件,并动态生成子事务执行流;建立事务管理器,将所述事务管理器与多个所述子事务绑定,建立事务管理器与多个子事务之间的通信通道;根据所述子事务执行流,串行或并行执行多个所述子事务;本发明专利技术还提供一种基于子事务流的分布式事务动态处理系统;本发明专利技术既确保了数据的最终一致性,又大幅提升用户业务操作的并发处理效率。

A Dynamic Processing Method and System for Distributed Transactions Based on Subtransaction Flow

The invention discloses a dynamic processing method of distributed transactions based on sub-transaction flow, which includes the following steps: the business system divides distributed transactions into multiple sub-transactions; the establishment of a transaction coordinator, the business system sends multiple said sub-transactions to the transaction coordinator, the transaction coordinator parses multiple said sub-transactions, and determines the required pre-positions for multiple said sub-transactions. Execution conditions and dynamic generation of sub-transaction execution flow; establishment of transaction manager to bind the transaction manager to multiple sub-transactions and establish communication channels between the transaction manager and multiple sub-transactions; serial or parallel execution of multiple sub-transactions according to the sub-transaction execution flow; and provision of a distributed dynamic transaction processing system based on sub-transaction flow. The invention not only ensures the final consistency of data, but also greatly improves the concurrent processing efficiency of user business operations.

【技术实现步骤摘要】
一种基于子事务流的分布式事务动态处理方法和系统
本专利技术涉及分布式计算机
,特别是一种基于子事务流的分布式事务动态处理方法和系统。
技术介绍
在传统分布式事务处理技术中,事务处理通常采用串行方式来处理各子事务,分布式事务最基本的解决方案是“二阶段提交协议”,它是基于分布式系统架构下的所有环节在进行事务提交时保持一致性而设计的算法。“二阶段提交协议”包括两个阶段:“准备”阶段和“提交或者回滚”阶段。在准备阶段,需要锁定资源,如果有失败,则发起回滚,收到回滚成功应答后才会进行事务完结处理,否则会不断尝试回滚直到成功;如果成功,则进入提交阶段,在提交过程中,如果有异常,则会不断进行重试提交,直到成功。因此,在分布式架构中,需要一种既能保证事务的一致性,又可以提升多用户业务操作并发执行效率的分布式事务处理方案。
技术实现思路
为解决现有技术中存在的问题,本专利技术的目的是提供一种基于子事务流的分布式事务动态处理方法和系统,本专利技术既确保了数据的最终一致性,又大幅提升用户业务操作的并发处理效率。为实现上述目的,本专利技术采用的技术方案是:一种基于子事务流的分布式事务动态处理方法,包括以下步骤:S1、业务系统将分布式事务拆分为多个子事务;S2、建立事务协调器,业务系统将多个所述子事务发送给所述事务协调器,事务协调器对多个所述子事务进行解析,确定多个所述子事务所需的前置执行条件,并动态生成子事务执行流;S3、建立事务管理器,将所述事务管理器与多个所述子事务绑定,建立事务管理器与多个子事务之间的通信通道;S4、根据所述子事务执行流,串行或并行执行多个所述子事务。作为一种优选的实施方式,所述步骤S4具体如下:如果当前节点所有子事务执行成功则进入下一节点继续执行,直至结束;如果当前节点有子事务执行失败则回滚当前子事务,并且如果当前节点有其他子事务则通知当前节点其他子事务回滚,同时,如果当前节点有前一级节点则继续通知前一级节点所有子事务回滚,直至结束。本专利技术还提供一种基于子事务流的分布式事务动态处理系统,包括:业务系统,用于将分布式事务拆分为多个子事务并将多个所述子事务发送给事务协调器;事务协调器,用于获取分布式事务对应的多个子事务,并对多个所述子事务进行解析,确定多个所述子事务所需的前置执行条件,动态生成子事务执行流;事务管理器,用于记录当前子事务的状态,并与多个所述子事务绑定后建立事务管理器与多个子事务之间的通信通道。作为一种优选的实施方式,所述事务管理器记录当前子事务的状态包括未开始,成功,失败和回滚。本专利技术的有益效果是:本专利技术提供的基于子事务流的分布式事务动态处理方法和系统,事务协调器获取分布式事务的多个子事务,动态生成子事务执行流,并行或串行处理多个分支事务,事务管理器记录子事务的执行状态,由此,缩短了中间过程,降低了时间复杂度,大大提高了用户操作的并发效率。附图说明图1为本专利技术实施例基于子事务流的分布式事务动态处理方法的流程图;图2为本专利技术实施例基于子事务流的分布式事务动态处理系统的系统框图。具体实施方式下面结合附图对本专利技术的实施例进行详细说明。实施例如图1所示,一种基于子事务流的分布式事务动态处理方法,包括以下步骤:101、业务系统将分布式事务拆分为多个子事务;102、建立事务协调器,业务系统将多个所述子事务发送给所述事务协调器,事务协调器对多个所述子事务进行解析,确定多个所述子事务所需的前置执行条件,并动态生成子事务执行流;103、建立事务管理器,将所述事务管理器与多个所述子事务绑定,建立事务管理器与多个子事务之间的通信通道;104、根据所述子事务执行流,串行或并行执行多个所述子事务,如果当前节点所有子事务执行成功则进入下一节点继续执行,直至结束;如果当前节点有子事务执行失败则回滚当前子事务,并且如果当前节点有其他子事务则通知当前节点其他子事务回滚,同时,如果当前节点有前一级节点则继续通知前一级节点所有子事务回滚,直至结束。本实施例还提供一种基于子事务流的分布式事务动态处理系统,包括:业务系统,用于将分布式事务拆分为多个子事务并将多个所述子事务发送给事务协调器;事务协调器,用于获取分布式事务对应的多个子事务,并对多个所述子事务进行解析,确定多个所述子事务所需的前置执行条件,动态生成子事务执行流;事务管理器,用于记录当前子事务的状态,该状态分为未开始,成功,失败和回滚,并与多个所述子事务绑定后建立事务管理器与多个子事务之间的通信通道。下面对本实施例作进一步说明:首先,业务系统将分布式事务拆分为多个子事务;业务系统根据业务需要,将分布式事务拆分为多个子事务。以多用户之间转账关系“从用户A1转账1000元给用户A2,用户A2转账2000元给用户A3,用户A2转账1000元给用户A4,用户A2原账户余额为2500元”为例来说,可以将分布式事务划分为六个子事务,该六个子事务分别用于如下处理:子事务B1为“A1账户减1000元”,子事务B2为“A2账户加1000元”,子事务B3为“A2账户减2000元”,子事务B4为“A3账户加2000元”,子事务B5为“A2账户减1000元”和子事务B6为“A4账户加1000元”。其次,建立事务协调器,用于获取分布式事务对应的多个子事务,所述业务系统将拆分的多个子事务发送给事务协调器;再次,所述事务协调器对所述多个子事务进行解析,以确定多个所述子事务所需的前置执行条件,动态生成子事务执行流;如前述例子,通过六个子事务生成的子事务流为:先并行执行子事务B1,子事务B2,子事务B3,子事务B4和子事务B6,再串行执行子事务B5,或者,先并行执行子事务B1,子事务B2,子事务B4,子事务B5和子事务B6,再串行执行子事务B3。接着,建立事务管理器,用于记录当前各个子事务的状态,该状态分为未开始,成功,失败和回滚,与所述多个子事务进行绑定,以用于事务管理器与多个子事务之间的通信;最后,根据所述子事务执行流,并行或串行处理所述多个子事务,如果当前节点所有子事务执行成功则进入下一节点继续执行,直至结束,如果当前节点有子事务执行失败则回滚当前子事务,并且如果当前节点有其他子事务则通知当前节点其他子事务回滚,同时,如果当前节点有前一级节点则继续通知前一级节点所有子事务回滚,直至结束。如前述例子,以执行流“先并行执行子事务B1,子事务B2,子事务B3,子事务B4和子事务B6,再串行执行子事务B5”为例,进一步阐述子事务执行过程:如果子事务B1、B2、B3、B4、B6都执行成功,则继续执行子事务B5,如果也执行成功,则返回事务执行结果结束;如果子事务B1、B2、B3、B4、B6都执行成功,则继续执行子事务B5,如果执行失败,则回滚子事务B5,并发布消息通知前一级节点,回滚子事务B1、B2、B3、B4、B6,然后返回事务执行结果结束;如果子事务B1、B2、B3、B4、B6中有一个子事务执行失败,假设B6执行失败,其余都执行成功,则回滚子事务B6,并发布消息通知当前节点其他子事务B1、B2、B3、B4进行回滚,然后返回事务执行结果结束。本实施例通过动态生成的子事务执行流,并行或串行执行分布式事务的各个子事务,既保证业务系统数据的最终一致性,又有效提升了业务系统的并发效率。以上所述实施例仅表达了本专利技术的具本文档来自技高网...

【技术保护点】
1.一种基于子事务流的分布式事务动态处理方法,其特征在于,包括以下步骤:S1、业务系统将分布式事务拆分为多个子事务;S2、建立事务协调器,业务系统将多个所述子事务发送给所述事务协调器,事务协调器对多个所述子事务进行解析,确定多个所述子事务所需的前置执行条件,并动态生成子事务执行流;S3、建立事务管理器,将所述事务管理器与多个所述子事务绑定,建立事务管理器与多个子事务之间的通信通道;S4、根据所述子事务执行流,串行或并行执行多个所述子事务。

【技术特征摘要】
1.一种基于子事务流的分布式事务动态处理方法,其特征在于,包括以下步骤:S1、业务系统将分布式事务拆分为多个子事务;S2、建立事务协调器,业务系统将多个所述子事务发送给所述事务协调器,事务协调器对多个所述子事务进行解析,确定多个所述子事务所需的前置执行条件,并动态生成子事务执行流;S3、建立事务管理器,将所述事务管理器与多个所述子事务绑定,建立事务管理器与多个子事务之间的通信通道;S4、根据所述子事务执行流,串行或并行执行多个所述子事务。2.根据权利要求1所述的基于子事务流的分布式事务动态处理方法,其特征在于,所述步骤S4具体如下:如果当前节点所有子事务执行成功则进入下一节点继续执行,直至结束;如果当前节点有子事务执行失败则回滚当前子事务,并...

【专利技术属性】
技术研发人员:李海彬
申请(专利权)人:四川长虹电器股份有限公司
类型:发明
国别省市:四川,51

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1