[发明专利]基于saga的分布式事务处理方法、装置、设备及介质有效
申请号: | 202310035829.4 | 申请日: | 2023-01-10 |
公开(公告)号: | CN115756768B | 公开(公告)日: | 2023-04-28 |
发明(设计)人: | 王颖奇;冯斌;兰锦;李重辰;王旭辉 | 申请(专利权)人: | 深圳复临科技有限公司 |
主分类号: | G06F9/46 | 分类号: | G06F9/46 |
代理公司: | 深圳市世联合知识产权代理有限公司 44385 | 代理人: | 郝少剑 |
地址: | 518000 广东省深圳市南山区粤海街*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 基于 saga 分布式 事务处理 方法 装置 设备 介质 | ||
1.一种基于saga的分布式事务处理方法,其特征在于,包括下述步骤:
当接收到事务处理请求时,获取分布式事务;
提取所述分布式事务的业务标识,以根据所述业务标识对所述分布式事务进行加锁处理,所述加锁处理还对所述分布式事务的操作对象进行加锁,当所述操作对象被加锁时,所述操作对象不可被多个分布式事务同时处理;
获取事务工厂中的子事务列表,根据所述事务工厂中的子事务列表,将所述分布式事务拆分为若干个子事务,并获取子事务执行顺序,其中,所述事务工厂为对基于saga的分布式事务进行定义与配置的组件;
按照所述子事务执行顺序执行各子事务,并在执行完毕后对所述分布式事务进行解锁处理;
当对所述各子事务执行成功时,得到所述分布式事务的事务处理结果;
所述各子事务被执行器池中的执行器执行,所述执行器池维持至少核心执行器数量的执行器;若所述执行器池中存在空闲执行器,所述空闲执行器的存在时长大于等于最大存在时长,且所述执行器池中执行器的数量大于所述核心执行器数量,所述空闲执行器被释放,直至存在的执行器数量等于所述核心执行器数量;所述执行器池中的执行器执行子事务的步骤包括:
当执行器池中存在空闲执行器时,在各空闲执行器中确定目标执行器,以通过所述目标执行器执行所述子事务;
当执行器池中工作执行器的数量小于预设的最大阈值且不存在空闲执行器时,创建执行器作为目标执行器,以通过所述目标执行器执行所述子事务;
当执行器池中工作执行器的数量等于预设的最大阈值时,进入等待执行状态,其中,所述等待执行状态在出现目标执行器时结束。
2.根据权利要求1所述的基于saga的分布式事务处理方法,其特征在于,在所述获取分布式事务的步骤之后,还包括:
确定所述分布式事务的数据量级别;
根据所述数据量级别选取saga组件,以基于所述saga组件执行所述提取所述分布式事务的业务标识,以根据所述业务标识对所述分布式事务进行加锁处理的步骤。
3.根据权利要求1所述的基于saga的分布式事务处理方法,其特征在于,所述提取所述分布式事务的业务标识的步骤包括:
根据所述分布式事务的事务类型,从所述分布式事务中提取预设类型字段,其中,所述预设类型字段包括事务主体标识和操作对象标识;
拼接提取到的事务主体标识和操作对象标识,得到所述分布式事务的业务标识。
4.根据权利要求1所述的基于saga的分布式事务处理方法,其特征在于,所述根据所述业务标识对所述分布式事务进行加锁处理的步骤包括:
查询所述业务标识所对应的分布式事务的事务状态;
当查询到所述事务状态为锁定状态时,丢弃所述分布式事务;
当未查询到所述事务状态时,对所述业务标识所对应的分布式事务进行加锁处理。
5.根据权利要求1所述的基于saga的分布式事务处理方法,其特征在于,所述按照所述子事务执行顺序执行各子事务的步骤包括:
对于所述子事务执行顺序中的每个子事务,对所述子事务进行持久化得到持久子事务;
通过执行器池中的执行器执行所述子事务,并对执行器的执行过程进行记录得到事务执行日志,其中,所述事务执行日志包括执行历史和回滚参数。
6.根据权利要求5所述的基于saga的分布式事务处理方法,其特征在于,在所述通过执行器池中的执行器执行所述子事务,并对执行器的执行过程进行记录得到事务执行日志的步骤之后,还包括:
当出现事务执行异常时,根据所述事务执行日志中的执行历史确定出现异常时执行的子事务;
根据所述持久子事务恢复所述子事务,并根据所述事务执行日志中的回滚参数对所述子事务进行回滚处理,以重新执行所述子事务。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于深圳复临科技有限公司,未经深圳复临科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202310035829.4/1.html,转载请声明来源钻瓜专利网。