[发明专利]一种微服务架构下单数据源分布式事务的处理方法有效
申请号: | 202010529433.1 | 申请日: | 2020-06-11 |
公开(公告)号: | CN111708616B | 公开(公告)日: | 2023-06-06 |
发明(设计)人: | 朱维扬;周波;王健;李善平;杨朝晖 | 申请(专利权)人: | 浙江网新恒天软件有限公司 |
主分类号: | G06F9/46 | 分类号: | G06F9/46;G06F9/54;G06F16/23 |
代理公司: | 杭州求是专利事务所有限公司 33200 | 代理人: | 刘静 |
地址: | 310012 浙江省杭*** | 国省代码: | 浙江;33 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 微服 架构 数据源 分布式 事务 处理 方法 | ||
本发明公开一种微服务架构下单数据源分布式事务的处理方法,包括服务调用者开启分布式事务、执行业务操作或数据库操作,服务调用者发起远程调用请求,服务提供者参与分布式事务,服务提供者返回远程调用响应,服务调用者继续执行业务操作或数据库操作,并最后关闭分布式事务。本发明不依赖于特定的开发语言和运行环境,可在对业务代码无侵入的情况下完成微服务架构下的单数据源分布式事务处理,显著降低基于微服务架构的软件开发成本。该方法符合数据库事务的原子性、一致性、隔离性、持久性,强一致地完成数据库事务操作,无需进行多阶段的事务提交,无需编写额外的事务补偿代码。系统开发复杂度低,运行效率高,维护成本低。
技术领域
本发明提供一种微服务架构下单数据源分布式事务的处理方法,主要涉及微服务架构中的分布式事务问题,能够低成本高效率地处理单数据源的分布式事务。
背景技术
近年来,随着计算机和互联网技术的不断进步,越来越多的领域都实施了信息化改造,传统的单体软件架构已经不能适应于快速迭代的业务需求和迅速增长的业务规模。因此基于微服务架构开发的软件系统应运而生。
在微服务架构下,软件系统被分解为若干相对独立的业务服务,每个服务通常以独立进程运行,被部署在不同的节点上。系统通过服务间点对点的远程调用完成一系列具体的业务功能,服务内部的事务特性可以依赖于与数据库建立独立的网络连接保证,但跨服务调用的分布式事务特性成了一个亟待解决的棘手问题。
现有的分布式事务处理方法通常有基于消息机制的事务最终一致性方法和两段式提交方法。最终一致性方法是通过消息中间件通知各个事务参与者事务的执行结果。如果某一个事务参与者的局部事务执行失败,则其向其余事务参与者广播,执行各自的事务补偿回滚代码。这种方法只能保证数据的最终一致性,在实时性要求高的系统中有较大局限性,并且并不能适用于所有业务场景,因为某些业务场景无法编写相应的事务补偿代码。两段式提交方法需要经历准备和提交两个阶段,由分布式事务协调器决策事务准备和提交是否成功。期间各服务需要与分布式事务协调器经历多次网络通信,事务处理开销大,时间长,并且无法避免事务准备阶段成功,提交阶段失败的事务不一致问题。
为了解决上述问题,本发明提出了一种微服务架构下针对单数据源的分布式事务处理方法。该方法能够低成本高效率地处理上述分布式事务问题。
发明内容
本发明的目的在于针对现有技术的局限和不足,提供一种微服务架构下针对单数据源的分布式事务处理方法。该方法符合数据库事务的原子性、一致性、隔离性、持久性,能够强一致的完成数据库事务操作,无需进行多阶段的事务提交,无需采用消息中间件或编写额外的事务补偿代码。系统软件开发时对业务代码无侵入性,业务开发人员无感知,软件开发复杂度低,事务处理效率高,系统维护成本低。
本发明是通过以下技术方案实现的:服务调用者透过分布式事务协调器开启分布式事务、执行业务操作或数据库操作;服务调用者附带事务上下文向服务提供者发起远程调用请求;服务提供者透过分布式事务协调器加入分布式事务、执行业务操作或数据库操作、退出分布式事务;服务提供者向服务调用者返回远程调用响应,服务调用者继续透过分布式事务协调器执行业务操作或数据库操作,并最后关闭分布式事务。该方法具体包括以下步骤:
(1)服务调用者开启分布式事务:服务调用者生成唯一的事务ID,并将事务ID传递给分布式事务协调器,通知其准备开启分布式事务;分布式事务协调器负责转发服务调用者对数据库的访问请求;
(2)服务调用者发起远程调用:服务调用者将事务ID包含在远程调用请求内,向服务提供者发起服务远程调用,并同步等待服务提供者的响应;
(3)服务提供者参与分布式事务:服务提供者凭事务ID向分布式事务协调器声明加入当前分布式事务;分布式事务协调器负责转发服务提供者对数据库的访问请求;服务提供者执行业务操作或数据库操作;服务提供者完成业务操作和数据库操作后,或者发生事务回滚时,凭事务ID向分布式事务协调器声明退出当前分布式事务;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于浙江网新恒天软件有限公司,未经浙江网新恒天软件有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202010529433.1/2.html,转载请声明来源钻瓜专利网。