[发明专利]基于Java探针技术的柔性分布式事务中心系统在审
申请号: | 202111323387.0 | 申请日: | 2021-11-08 |
公开(公告)号: | CN114281838A | 公开(公告)日: | 2022-04-05 |
发明(设计)人: | 陈荣坚;朱兴宇;马嵩;杨国庆;王加义;杨明 | 申请(专利权)人: | 浙江高信技术股份有限公司 |
主分类号: | G06F16/242 | 分类号: | G06F16/242;G06F16/27 |
代理公司: | 杭州裕阳联合专利代理有限公司 33289 | 代理人: | 高明翠 |
地址: | 310000 浙江省杭州市上城*** | 国省代码: | 浙江;33 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 基于 java 探针 技术 柔性 分布式 事务 中心 系统 | ||
本发明公开了一种基于Java探针技术的柔性分布式事务中心系统,包含:分布式事务客户端和分布式事务服务端;分布式事务客户端包含Java探针监控模块、SQL分析模块、日志记录模块和本地事务回滚模块;分布式事务服务端包含事务注册模块、全局事务回滚模块和分支事务驱动模块。通过Java探针监控模块对服务的接口进行监控,记录各服务之间接口的调用链和调用状态,保存各接口执行之前以及执行之后的数据库快照,生成探针日志,用于回滚操作。本发明所提供的基于Java探针技术的柔性分布式事务中心系统,通过探针取代拦截器或是切面的方式实现代码的低侵入,不需要修改用户代码即可通过修改字节码的方式达成接入系统的特性。
技术领域
本发明涉及一种基于Java探针技术的柔性分布式事务中心系统。
背景技术
在微服务场景下,多个服务之间存在着相互关联的业务,且需要分别对各自的数据库进行操作,单纯的本地事务仅仅只能保证单个服务的事务一致性,却无法保证多服务之间的事务一致性,因此需要通过分布式事务解决微服务场景下多服务的事务一致性的问题,现有的方案是通过AT、TCC等分布式事务解决方案保证事务的一致性。现有的分布式事务框架,例如Seata、Hmily等,是通过拦截器或代理SQL的方式获取到原始的SQL语句,之后通过对SQL语言的解析分析SQL语句类型,根据类型保存数据库快照用于之后的失物回滚操作,但是这种实现方式难以支持低版本的Java项目的改造,和java RPC框架进行了绑定,并且通过这类分布式事务框架进行改造会存在代码侵入的问题,需要对代码进行部分改造。
现有技术的主要缺陷在于:通过分布式事务框架进行改造的项目需要对原有代码甚至数据库进行改造,工程量大。由于用户现有项目和已经在使用的RPC框架在一定程度上存在绑定关系,现有分布式事务框架难以支持旧项目的改造,支持框架版本较高不适配老版本。部分分布式事务框架在流程中加了锁难以支持高并发场景的分布式事务处理与回滚。
发明内容
本发明提供了一种基于Java探针技术的柔性分布式事务中心系统,采用如下的技术方案:
一种基于Java探针技术的柔性分布式事务中心系统,包含:
分布式事务客户端和分布式事务服务端;
分布式事务客户端连接至分布式事务服务端;
分布式事务客户端包含:
Java探针监控模块,用于对服务的接口进行监控,记录各服务之间接口的调用链和调用状态,保存各接口执行之前以及执行之后的数据库快照,生成探针日志;
SQL分析模块,用于拦截接口调用数据库所执行的SQL语句并对SQL语句进行分析;
日志记录模块,用于根据SQL分析模块的分析结果查询数据库中数据,保存该数据的快照到该接口的调用日志条目中用于之后的回滚操作;
本地事务回滚模块,用于在分布式事务服务端通知回滚及给出回滚范围之后根据分布式事务服务端传过来的traceid查询本地的记录的数据库快照并根据数据库快照对本地事务进行回滚操作;
分布式事务服务端包含:
事务注册模块,用于根据分布式事务客户端在微服务调用接口时发送过来的注册信息创建新的全局事务并生成traceid并返回至分布式事务客户端;
全局事务回滚模块,用于接收分布式事务客户端由于监测到数据库操作异常或失败之后发送过来的traceid后根据该traceid查询对应的全局事务,将对应的全局事务的状态修改为回滚,并发送回滚请求;
分支事务驱动模块,用于在接收到回滚请求后根据traceid查询调用链并通知调用链上的各服务进行回滚操作。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于浙江高信技术股份有限公司,未经浙江高信技术股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202111323387.0/2.html,转载请声明来源钻瓜专利网。