一种实现分布式事物的方法及系统技术方案

技术编号:19778372 阅读:40 留言:0更新日期:2018-12-15 11:20
本发明专利技术涉及一种实现分布式事物的方法及系统,该方法包括如下步骤:在执行分布式事物请求时,为所有操作生成一个执行链;按照执行链的顺序,依次调用相关的子服务,发送相关数据,并等待反馈;收到子服务的反馈消息后,刷新执行链的数据库记录,如果反馈消息是成功,则执行执行链中的下一步,如果反馈消息是失败消息,则按照执行链,反向执行逆向操作。本发明专利技术可以缓解参与者子系统的阻塞问题;由于整个过程中记录了事物的失败情况,可以实现失败操作的修改,撤销,所以可以有效保证系统的一致性;本发明专利技术结合合理的记录数据,以及适当的集群容灾配置,可以有效避免单点故障问题,增强系统的健壮性。

【技术实现步骤摘要】
一种实现分布式事物的方法及系统
本专利技术属于信息处理
,尤其涉及一种实现分布式事物的方法及系统。
技术介绍
在传统的OLTP系统领域,我们在很多场景下都会面临事物一致性方面的需求,例如最经典的Bob给Smith转账的案例。传统的企业开发,系统往往是以单体应用的形式存在的,也没有横跨多个数据库。而大型互联网平台往往是由一系列分布式系统都成的,开发语言和技术站也相对比较复杂,尤其是在SOA和微服务架构盛行的今天,一个看起来简单的功能,内部可能需要调用多个“服务”并操作多个数据库或分片来实现,情况往往会复杂很多。单一的技术手段和解决方案已经无法应对和满足这些复杂的场景了。提到分布式系统,必然要提到分布式事物。分布式事物就是在分布式环境下运行的事物,对于分布式事物来说,事物的每个操作步骤是运行在不同的机器上的服务。怎么保证运行与不同机器上的系统之间的一致性就是分布式事物所关注的问题。提到分布式事物,很容易想到的是2PC,及两阶段提交。两阶段提交方案中参与事物的节点可以划分为两个角色,一个是协调者,一般是事物的发起方,一个是服务的参与者,及提供服务的一方。现有技术中的二阶段提交本文档来自技高网...

【技术保护点】
1.一种实现分布式事物的方法,其特征在于,该方法包括如下步骤:1)在执行分布式事物请求时,为所有操作生成一个执行链;2)按照执行链的顺序,依次调用相关的子服务,发送相关数据,并等待反馈;3)收到子服务的反馈消息后,刷新执行链的数据库记录,如果反馈消息是成功,则执行执行链中的下一步,跳转到步骤2),如果反馈消息是失败消息,则按照执行链,反向执行逆向操作。

【技术特征摘要】
1.一种实现分布式事物的方法,其特征在于,该方法包括如下步骤:1)在执行分布式事物请求时,为所有操作生成一个执行链;2)按照执行链的顺序,依次调用相关的子服务,发送相关数据,并等待反馈;3)收到子服务的反馈消息后,刷新执行链的数据库记录,如果反馈消息是成功,则执行执行链中的下一步,跳转到步骤2),如果反馈消息是失败消息,则按照执行链,反向执行逆向操作。2.根据权利要求1所述的方法,其特征在于,采用数据结构保存所述执行链,所述数据结构包括关系型的数据库和/或非关系型数据库。3.根据权利要求1所述的方法,其特征在于,所述步骤1)中,在执行分布式事物请求时,先对请求包含的所有操作进行拓扑排序,并为每个操作配置一个逆向操作,最终生成一个由所有操作组成的满足拓扑排序的执行链。4.根据权利要求2所述的方法,其特征在于,子服务在接收到调用请求后,记录调用信息,并处理调用请求,执行完成后反馈成功/失败信息,并刷新本地调用记录;所述数据结构中包含唯一的标识ID、事物数据、上下游操作标识、当前操作节点、节点执行状态,以及节点执行节点信息;通过缓存系统,对数据结构进行保存,更新。5.根据权利要求1所述的方法,其特征在于,所述步骤3)中,在执行逆向操作的过程中,如果某操作发生失败,则表明本次事物执行失败,并刷新执行链的数据库记录记录,将其标为事物失败,并进行自动或者手动处理。6.一种实现分布式...

【专利技术属性】
技术研发人员:丁波王志华喻波王志海韩振国安鹏
申请(专利权)人:北京明朝万达科技股份有限公司
类型:发明
国别省市:北京,11

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

1