[发明专利]基于saga的分布式事务处理方法、装置、设备及介质有效
申请号: | 202310035829.4 | 申请日: | 2023-01-10 |
公开(公告)号: | CN115756768B | 公开(公告)日: | 2023-04-28 |
发明(设计)人: | 王颖奇;冯斌;兰锦;李重辰;王旭辉 | 申请(专利权)人: | 深圳复临科技有限公司 |
主分类号: | G06F9/46 | 分类号: | G06F9/46 |
代理公司: | 深圳市世联合知识产权代理有限公司 44385 | 代理人: | 郝少剑 |
地址: | 518000 广东省深圳市南山区粤海街*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 基于 saga 分布式 事务处理 方法 装置 设备 介质 | ||
本申请实施例属于计算机领域,涉及一种基于saga的分布式事务处理方法,包括:当接收到事务处理请求时,获取分布式事务;提取所述分布式事务的业务标识,以根据所述业务标识对所述分布式事务进行加锁处理;获取事务工厂中的子事务列表,根据所述子事务列表,将所述分布式事务拆分为若干个子事务,并获取子事务执行顺序,其中,所述事务工厂为对基于saga的分布式事务进行定义与配置的组件;按照所述子事务执行顺序执行各子事务,并在执行完毕后对所述分布式事务进行解锁处理;当对所述各子事务执行成功时,得到所述分布式事务的事务处理结果。本申请还提供一种基于saga的分布式事务处理装置、计算机设备及存储介质。本申请简化了saga事务幂等性的实现。
技术领域
本申请涉及计算机技术领域,尤其涉及一种基于saga的分布式事务处理方法、装置、计算机设备及存储介质。
背景技术
分布式事务是指事务的发起者、资源及资源管理器和事务处理者分别位于分布式系统的不同节点之上。由于涉及到多个节点,分布式事务的最终一致性显得尤为重要。针对处理分布式事务,当前提出了两段式提交(2 phase commit,2PC)、三段式提交(3 phasecommit,3PC)、可靠事件队列、TCC事务(Try-Confirm-Cancel)和saga事务等解决方案。其中,saga是将一个事务分解为若干个子事务,子事务可以单独提交,具有较高的灵活性,使用较多。
在saga中,事务具有正向事件和反向事件,saga要求正向事件和反向事件都要满足幂等性从而确保数据一致性。在复杂业务中,这会引入更多复杂性,并导致对已有的业务系统逐一改造的成本过高。而且,saga只是提出了一些规范,并没有具体规定如何实现,使得当前基于saga的分布式事务处理较为凌乱。
发明内容
本申请实施例的目的在于提出一种基于saga的分布式事务处理方法、装置、计算机设备及存储介质,以简化saga事务幂等性的实现。
为了解决上述技术问题,本申请实施例提供一种基于saga的分布式事务处理方法,采用了如下所述的技术方案:
当接收到事务处理请求时,获取分布式事务;
提取所述分布式事务的业务标识,以根据所述业务标识对所述分布式事务进行加锁处理;
获取事务工厂中的子事务列表,根据所述事务工厂中的子事务列表,将所述分布式事务拆分为若干个子事务,并获取子事务执行顺序,其中,所述事务工厂为对基于saga的分布式事务进行定义与配置的组件;
按照所述子事务执行顺序执行各子事务,并在执行完毕后对所述分布式事务进行解锁处理;
当对所述各子事务执行成功时,得到所述分布式事务的事务处理结果。
为了解决上述技术问题,本申请实施例还提供一种基于saga的分布式事务处理装置,采用了如下所述的技术方案:
事务获取模块,用于当接收到事务处理请求时,获取分布式事务;
加锁处理模块,用于提取所述分布式事务的业务标识,以根据所述业务标识对所述分布式事务进行加锁处理;
事务拆分模块,用于获取事务工厂中的子事务列表,根据所述事务工厂中的子事务列表,将所述分布式事务拆分为若干个子事务,并获取子事务执行顺序,其中,所述事务工厂为对基于saga的分布式事务进行定义与配置的组件;
事务执行模块,用于按照所述子事务执行顺序执行各子事务,并在执行完毕后对所述分布式事务进行解锁处理;
结果生成模块,用于当对所述各子事务执行成功时,得到所述分布式事务的事务处理结果。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于深圳复临科技有限公司,未经深圳复临科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202310035829.4/2.html,转载请声明来源钻瓜专利网。