一种基于过程任务事务处理机制的实现方法与流程

文档序号:17719907发布日期:2019-05-22 02:05阅读:194来源:国知局
一种基于过程任务事务处理机制的实现方法与流程

本发明涉及一种事务处理机制的实现方法,更具体地说,涉及一种基于过程任务事务处理机制的实现方法。



背景技术:

随着互联网的发展,云应用、微服务架构的出现,传统事务的处理方式在处理能力和可用性上都暴露出了瓶颈,柔性事务的概念被提出。柔性事务与传统事务最大的区别在于:传统事务通过锁机制,要求并保证数据的原子性、一致性、隔离性和持久性;柔性事务则采用无锁设计,实现并保证数据的基本可用、柔性状态及最终一致性。在技术上,传统事务通常由关系数据库的事务机制实现,而柔性事务还处于探索阶段,目前没有统一的技术手段,但统大多数通常采用消息机制实现,主要由生产者、消息中间件和消费者组成。

数据库的事务机制,当一个事务被提交给数据库管理系统时,则数据库需要确保该事务中的所有操作均成功完成且结果被永久保存在数据库中,如果事务中任何一个操作没有成功完成,则事务中的所有操作都被回滚,回到事务执行前的状态。在现实情况下,往往数据库事务的执行过程中,很可能出现某个操作失败,导致整个事务回滚而无法完成,且无法解决互联网时代,分布式系统中跨平台、跨系统、跨应用、跨存储事务的一致性,通常只能用于单个应用内。另外,数据库事务如果应用不当,数据库的行锁和表锁往往会严重影响数据库执行效率,并且事务一旦定义,很难变更。

消息机制,消息队列是分布式系统中的重要组成部分,主要解决应用耦合、异常消息、流量削锋等问题,从而实现高性能、高可用、可伸缩和最终一致性架构,是大型分布式系统不可缺少的中间件。消息机制采用fifo先进先出的原则,缺乏优先级机制,容易造成消息堆积;且消息之间相互独立,没有依赖处理机制,无法实现保证某一条消息处理之后,根据依赖关系和处理结果触发生成新的消息;消息队列中的消息一旦被消费后,无法回退消息。



技术实现要素:

本发明要解决的技术问题在于,针对现有技术中的缺陷,提供一种基于过程任务事务处理机制的实现方法。

本发明解决其技术问题所采用的技术方案是:构造一种基于过程任务事务处理机制的实现方法,将事务化整为零,根据业务逻辑的复杂度、关联性和优先级,以任务方式将大事务拆分成零散的微事务,即每一个过程任务为一个微事务,而一个完整的过程链才是一个完整的事务,做到分布式柔性事务的可跟踪、可回溯和可动态变更,从而有效解决跨业务、跨系统、跨平台的业务数据事务一致性的问题。

在本发明所述的基于过程任务事务处理机制的实现方法中,所述基于过程任务事务处理机制的实现方法步骤为:

s1.事件执行器在事务层或者非事务层拦截业务对象的cud等操作,包括新增、修改、删除通用操作,以及禁用、启用等自定义操作,识别并转换为与之对应的事件;

s2.事件执行器根据事件标识,根据过程定义并结合匹配规则产生过程任务,将合适的过程任务写入队列,并根据过程定义标记其执行优先级、执行顺序和依赖关系;

s3.过程执行器监听过程任务队列,判断任务的执行条件,按预先定义的规则分布式异步执行过程任务;

s4.每一个过程任务的运行均完成特定的微事务处理,并根据任务执行结果,自动判断是否触发依赖过程任务的创建和执行。

实施本发明的一种基于过程任务事务处理机制的实现方法,具有以下有益效果:本发明简化事务逻辑,化整为零避免传统事务锁的产生;有效提高分布式数据的一致性,做到柔性事务结果可跟踪、可回溯;提高系统的灵活性,在业务不中断的情况下可根据业务发展随时调整事务。

附图说明

下面将结合附图及实施例对本发明作进一步说明,附图中:

图1是本发明的基于过程任务事务处理机制的实现方法流程图

具体实施方式

为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。

如图1所示,所述基于过程任务事务处理机制的实现方法步骤为:

s1.事件执行器在事务层或者非事务层拦截业务对象的cud等操作,包括新增、修改、删除通用操作,以及禁用、启用等自定义操作,识别并转换为与之对应的事件;

s2.事件执行器根据事件标识,根据过程定义并结合匹配规则产生过程任务,将合适的过程任务写入队列,并根据过程定义标记其执行优先级、执行顺序和依赖关系;

s3.过程执行器监听过程任务队列,判断任务的执行条件,按预先定义的规则分布式异步执行过程任务;

s4.每一个过程任务的运行均完成特定的微事务处理,并根据任务执行结果,自动判断是否触发依赖过程任务的创建和执行。

进一步地,所述基于过程任务的事务处理方法是结合传递事务和柔性事务的各自优势,将事务化整为零,根据业务逻辑的复杂度、关联性和优先级,以任务方式将大事务拆分成零散的微事务,即每一个过程任务为一个微事务,而一个完整的过程链才是一个完整的事务,做到分布式柔性事务的可跟踪、可回溯和可动态变更,从而有效解决跨业务、跨系统、跨平台的业务数据事务一致性的问题。

尽管通过以上实施例对本发明进行了揭示,但本发明的保护范围并不局限于此,在不偏离本发明构思的条件下,对以上各构件所做的变形、替换等均将落入本发明的权利要求范围内。



技术特征:

技术总结
本发明涉及一种基于过程任务事务处理机制的实现方法,本发明步骤为:事件执行器在事务层或者非事务层拦截业务对象的CUD等操作;事件执行器根据事件标识产生过程任务;过程执行器监听过程任务队列,判断任务的执行条件执行过程任务;每一个过程任务的运行均完成特定的微事务处理,并根据任务执行结果,自动判断是否触发依赖过程任务的创建和执行。本发明简化事务逻辑,化整为零避免传统事务锁的产生。

技术研发人员:李勇;乐天
受保护的技术使用者:深圳竹云科技有限公司
技术研发日:2018.12.28
技术公布日:2019.05.21
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1