分布式事务一致性解决方法、系统、设备及存储介质技术方案

技术编号:39258090 阅读:8 留言:0更新日期:2023-10-30 12:09
本发明专利技术公开了分布式事务一致性解决方法、系统、设备及存储介质,该方法包括:根据当前业务流程对应的业务类型,从事务日志模型中匹配对应的目标事务模式,所述事务日志模型是根据各个事务模式对应的事务日志处理特点进行抽象得到的,所述事务日志模型具有多个事务日志处理接口;确定所述目标事务模式对应的事务日志处理接口;调用所述事务日志处理接口,执行所述当前业务流程。实现针对不同业务流程的业务类型匹配对应的事务模式,采用合适的事务模式实现对业务流程的个性化处理。式实现对业务流程的个性化处理。式实现对业务流程的个性化处理。

【技术实现步骤摘要】
分布式事务一致性解决方法、系统、设备及存储介质


[0001]本专利技术涉及计算机数据库
,尤其涉及一种分布式事务一致性解决方法、系统、设备及存储介质。

技术介绍

[0002]BSS生产系统由单体应用向中心化、微服务演进,支持云化部署,系统架构逐步演进为分布式架构应用,业务流程通常需要调用多个服务节点才能完成。云化部署导致服务可能运行在同一节点上,也可能运行在不同节点上。多中心之间的事务一致性成为生产系统的难点。
[0003]解决分布式事务的实现模式主要是两阶段提交:服务调用和事务提交两个阶段完成,主要包括四种事务模式:XA模式、AT模式、SAGA模式和TCC模式。其中,XA模式无侵入性且属于强一致性模型,但是依赖数据库XA能力,如果数据库XA能力弱,则事务回滚失败率高。AT模式、SAGA模式和TCC模式不依赖数据库XA能力,处理完即可提交,数据库吞吐量高,但是,AT模式的SQL解释器技术门槛高且脏写后无法自动补偿,SAGA模式和TCC模式事务的回滚全部由程序做业务逻辑实现,开发成本高。但是,上述四种事务模式并不兼容,无法针对各事务模式对业务流程进行个性化处理。

技术实现思路

[0004]本申请实施例通过提供一种分布式事务一致性解决方法、系统、设备及存储介质,旨在实现针对不同业务流程的业务类型匹配对应的事务模式,采用合适的事务模式实现对业务流程的个性化处理。
[0005]本申请实施例提供了一种分布式事务一致性解决方法,所述分布式事务一致性解决方法,包括:根据当前业务流程对应的业务类型,从事务日志模型中匹配对应的目标事务模式,所述事务日志模型是根据各个事务模式对应的事务日志处理特点进行抽象得到的,所述事务日志模型具有多个事务日志处理接口;确定所述目标事务模式对应的事务日志处理接口;调用所述事务日志处理接口,执行所述当前业务流程。
[0006]可选地,所述事务模式包括:XA模式、AT模式、SAGA模式和TCC模式;所述事务日志处理接口至少包括:保存事务日志接口、提交分支事务接口、回滚分支事务接口、清理事务日志接口和事务稽核接口。
[0007]可选地,当所述目标事务模式为所述XA模式时,所述调用所述事务日志处理接口,执行所述当前业务流程的步骤包括:通过所述保存事务日志接口,进行事务预提交;通过所述提交分支事务接口,进行事务提交,将全局事务的结果标记为提交状态,并保存到全局事务日志中;
通过所述回滚分支事务接口,进行事务回滚,将全局事务的结果标记为回滚状态,并保存到全局事务日志中;通过所述清理事务日志接口,删除全局事务日志中的全局事务的信息;通过所述事务稽核接口,稽核任务定时获取异常事务,根据所述异常事务标识从全局事务日志中获取所述异常事务的状态,对所述异常事务进行提交或者回滚处理。
[0008]可选地,当所述目标事务模式为所述AT模式时,所述调用所述事务日志处理接口,执行所述当前业务流程的步骤包括:通过所述保存事务日志接口,通过代理JDBC对象拦截执行的SQL语句,解析sql语句,查询表中的旧数据,提交SQL语句,从数据库中提取或者查询表中的新数据;将旧数据和新数据保存到事务日志;通过所述回滚分支事务接口,根据事务标识从事务日志中获取到旧数据和新数据,从数据库查询当前最新的数据和新数据并比较是否一致;如果一致,使用旧数据组装出反向SQL执行,写回到数据库,做反向数据补偿;不一致则记录事务异常;通过所述清理事务日志接口,从事务日志中删除所述事务标识对应的信息,清理各分支事务缓存的分支数据;通过所述事务稽核接口,稽核任务定时获取异常事务,根据所述异常事务标识,从全局事务日志中获取所述异常事务的状态,对所述异常事务进行提交或者回滚处理。
[0009]可选地,当所述目标事务模式为所述SAGA模式时,所述调用所述事务日志处理接口,执行所述当前业务流程的步骤包括:通过所述保存事务日志接口,拦截正向服务调用,将服务信息、请求数据和响应数据保存到事务日志;通过所述回滚分支事务接口,根据事务标识从事务日志中获取到正向服务信息,查找到反向补偿服务,并使用所述请求数据和所述响应数据调用实现回滚;通过所述清理事务日志接口,从事务日志中删除所述事务标识对应的信息;通过所述事务稽核接口,稽核任务定时获取异常事务,根据所述异常事务标识,从全局事务日志中获取所述异常事务的状态,对所述异常事务进行提交或者回滚处理。
[0010]可选地,当所述目标事务模式为所述TCC模式时,所述调用所述事务日志处理接口,执行所述当前业务流程的步骤包括:通过所述保存事务日志接口,业务调用完成后,将本地事务使用的资源做挂起处理;通过所述提交分支事务接口,根据事务标识恢复事务资源信息,将所述事务资源信息绑定到线程,并调用数据库连接的提交操作;通过所述回滚分支事务接口,根据事务标识恢复事务资源信息,将所述事务资源信息绑定到线程,并调用数据库连接的回滚操作;通过所述清理事务日志接口,从事务日志中删除所述事务标识对应的信息。
[0011]可选地,所述分布式事务一致性解决方法,还包括:每个分支事务定时检测长时间未结束的事务节点,查询全局事务状态和事务日志后,对不一致事务做补偿处理。
[0012]此外,为实现上述目的,本专利技术还提供了一种分布式事务一致性解决系统,包括:
匹配模块,用于根据当前业务流程对应的业务类型,从事务日志模型中匹配对应的目标事务模式,所述事务日志模型是根据各个事务模式对应的事务日志处理特点进行抽象得到的,所述事务日志模型具有多个事务日志处理接口;确定模块,用于确定所述目标事务模式对应的事务日志处理接口;调用模块,用于调用所述事务日志处理接口,执行所述当前业务流程。
[0013]此外,为实现上述目的,本专利技术还提供了一种分布式事务一致性解决设备包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的分布式事务一致性解决程序,所述分布式事务一致性解决程序被所述处理器执行时实现上述的分布式事务一致性解决方法的步骤。
[0014]此外,为实现上述目的,本专利技术还提供了一种计算机可读存储介质,其上存储有分布式事务一致性解决程序,所述分布式事务一致性解决程序被处理器执行时实现上述的分布式事务一致性解决方法的步骤。
[0015]本申请实施例中提供的一种分布式事务一致性解决方法、系统、设备及存储介质的技术方案,本申请根据当前业务流程对应的业务类型,从事务日志模型中匹配对应的目标事务模式,所述事务日志模型是根据各个事务模式对应的事务日志处理特点进行抽象得到的,所述事务日志模型具有多个事务日志处理接口;确定所述目标事务模式对应的事务日志处理接口;调用所述事务日志处理接口,执行所述当前业务流程。实现针对不同业务流程的业务类型匹配对应的事务模式,采用合适的事务模式实现对业务流程的个性化处理。
附图说明
[0016]图1为本专利技术分布式事务一致性解决方法第一实施例的流程示意图;图2为本专利技术分布式事务一致性解决系统的功能模块图;图3为本专利技术分布式事务一致性解决设备的结构示意图;图4为本本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种分布式事务一致性解决方法,其特征在于,所述分布式事务一致性解决方法包括:根据当前业务流程对应的业务类型,从事务日志模型中匹配对应的目标事务模式,所述事务日志模型是根据各个事务模式对应的事务日志处理特点进行抽象得到的,所述事务日志模型具有多个事务日志处理接口;确定所述目标事务模式对应的事务日志处理接口;调用所述事务日志处理接口,执行所述当前业务流程。2.如权利要求1所述的分布式事务一致性解决方法,其特征在于,所述事务模式包括:XA模式、AT模式、SAGA模式和TCC模式;所述事务日志处理接口至少包括:保存事务日志接口、提交分支事务接口、回滚分支事务接口、清理事务日志接口和事务稽核接口。3.如权利要求2所述的分布式事务一致性解决方法,其特征在于,当所述目标事务模式为所述XA模式时,所述调用所述事务日志处理接口,执行所述当前业务流程的步骤包括:通过所述保存事务日志接口,进行事务预提交;通过所述提交分支事务接口,进行事务提交,将全局事务的结果标记为提交状态,并保存到全局事务日志中;通过所述回滚分支事务接口,进行事务回滚,将全局事务的结果标记为回滚状态,并保存到全局事务日志中;通过所述清理事务日志接口,删除全局事务日志中的全局事务的信息;通过所述事务稽核接口,稽核任务定时获取异常事务,根据异常事务标识从全局事务日志中获取所述异常事务的状态,对所述异常事务进行提交或者回滚处理。4.如权利要求2所述的分布式事务一致性解决方法,其特征在于,当所述目标事务模式为所述AT模式时,所述调用所述事务日志处理接口,执行所述当前业务流程的步骤包括:通过所述保存事务日志接口,通过代理JDBC对象拦截执行的SQL语句,解析sql语句,查询表中的旧数据,提交SQL语句,从数据库中提取或者查询表中的新数据;将旧数据和新数据保存到事务日志;通过所述回滚分支事务接口,根据事务标识从事务日志中获取到旧数据和新数据,从数据库查询当前最新的数据和新数据并比较是否一致;如果一致,使用旧数据组装出反向SQL执行,写回到数据库,做反向数据补偿;不一致则记录事务异常;通过所述清理事务日志接口,从事务日志中删除所述事务标识对应的信息,清理各分支事务缓存的分支数据;通过所述事务稽核接口,稽核任务定时获取异常事务,根据异常事务标识,从全局事务日志中获取所述异常事务的状态,对所述异常事务进行提交或者回滚处理。5.如权利要求2所述的分布式事务一致性解决方法,其特征在于,当所述目标事务模式为所述SAGA模式时,所述调用所述事务日志处理接口,执行所述当前业务流程的步骤包括:通过...

【专利技术属性】
技术研发人员:苏士伟李睿田苗孙谦晨宋潇
申请(专利权)人:中国移动通信集团有限公司
类型:发明
国别省市:

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

1