[发明专利]分布式事务处理方法及装置、电子设备、存储介质有效
| 申请号: | 202111629789.3 | 申请日: | 2021-12-23 |
| 公开(公告)号: | CN114327799B | 公开(公告)日: | 2022-08-05 |
| 发明(设计)人: | 陈健斌 | 申请(专利权)人: | 杭州博盾习言科技有限公司 |
| 主分类号: | G06F9/46 | 分类号: | G06F9/46;G06F9/54 |
| 代理公司: | 北京律智知识产权代理有限公司 11438 | 代理人: | 孙宝海;阚梓瑄 |
| 地址: | 311121 浙江省杭州市余*** | 国省代码: | 浙江;33 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 分布式 事务处理 方法 装置 电子设备 存储 介质 | ||
1.一种分布式事务处理方法,其特征在于,应用于分布式事务参与方;所述方法包括:
接收分布式事务发起方发送的预处理请求,所述预处理请求由所述分布式事务发起方根据分布式事务包含的多个分支事务中的其中一个分支事务生成;
对预处理请求所对应的分支事务进行预处理;
从消息中间件中获取事务处理消息,所述事务处理消息由所述分布式事务发起方根据所述多个分支事务各自的预处理结果生成;
根据获取到的事务处理消息进行分支事务的回滚或提交;
所述根据获取到的事务处理消息进行分支事务的回滚或提交,包括:
若所述事务处理消息为回滚消息,则根据所述回滚消息确定第二分支事务;
从自身包含的事务状态库中查找所述第二分支事务的状态;所述事务状态库用于存储所述分布式事务参与方中处理的事务的状态;
若查找到的所述第二分支事务的状态为预处理中,则待所述第二分支事务预处理成功后,对所述第二分支事务进行回滚;
若未查找到所述第二分支事务的状态,则待接收到所述第二分支事务对应的预处理请求后,基于所述回滚消息丢弃所述第二分支事务对应的预处理请求。
2.如权利要求1所述的方法,其特征在于,所述对预处理请求所对应的分支事务进行预处理,包括:
从预创建的连接池中获取与数据库的连接通道;
通过获取到的连接通道将接收到的预处理请求传输至数据库,以使所述数据库的服务器根据所述预处理请求对所述数据库中的数据进行预处理。
3.如权利要求1所述的方法,其特征在于,在所述接收分布式事务发起方发送的预处理请求之后,所述方法还包括:
确定接收到的预处理请求所对应的第一分支事务,并确定所述第一分支事务对应的待更新数据对象;
在所述第一分支事务被提交或回滚之前,禁止所述第一分支事务外的事务对所述待更新数据对象进行更新。
4.一种分布式事务处理方法,其特征在于,所述方法包括:
获取分布式事务包含的多个分支事务,并生成所述多个分支事务各自对应的预处理请求;
将生成的预处理请求分别发送至对应的分布式事务参与方,以使所述分布式事务参与方对接收到的预处理请求所对应的分支事务进行预处理;
获取所述多个分支事务各自的预处理结果,并根据获取到的预处理结果生成事务处理消息;
将所述事务处理消息添加至消息中间件,以使所述分布式事务参与方从所述消息中间件获取事务处理消息,并根据获取到的事务处理消息进行分支事务的回滚或提交;其中,所述事务处理消息包括回滚消息,所述回滚消息用于指示所述分布式事务参与方根据所述回滚消息确定第二分支事务,从自身包含的从自身包含的事务状态库中查找所述第二分支事务的状态,若查找到的所述第二分支事务的状态为预处理中,则待所述第二分支事务预处理成功后,对所述第二分支事务进行回滚;若未查找到所述第二分支事务的状态,则待接收到所述第二分支事务对应的预处理请求后,基于所述回滚消息丢弃所述第二分支事务对应的预处理请求;所述事务状态库用于存储所述分布式事务参与方中处理的事务的状态。
5.如权利要求4所述的方法,其特征在于,所述根据获取到的预处理结果生成事务处理消息,包括:
根据获取到的预处理结果生成初始处理消息;
将所述多个分支事务各自对应的分布式事务参与方的标识信息添加至所述初始处理消息,得到所述事务处理消息,以使分布式事务参与方从所述消息中间件中获取包含自身标识信息的事务处理消息。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于杭州博盾习言科技有限公司,未经杭州博盾习言科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202111629789.3/1.html,转载请声明来源钻瓜专利网。





