[发明专利]分布式事务的处理方法、装置、电子设备及存储介质有效
| 申请号: | 201910786076.4 | 申请日: | 2019-08-23 | 
| 公开(公告)号: | CN110502319B | 公开(公告)日: | 2021-10-12 | 
| 发明(设计)人: | 曹智颖 | 申请(专利权)人: | 腾讯科技(深圳)有限公司 | 
| 主分类号: | G06F9/46 | 分类号: | G06F9/46;G06F11/14;G06F16/27;G06Q10/08;G06Q30/06 | 
| 代理公司: | 北京市立方律师事务所 11330 | 代理人: | 张筱宁 | 
| 地址: | 518000 广东省深圳*** | 国省代码: | 广东;44 | 
| 权利要求书: | 查看更多 | 说明书: | 查看更多 | 
| 摘要: | |||
| 搜索关键词: | 分布式 事务 处理 方法 装置 电子设备 存储 介质 | ||
1.一种分布式事务的处理方法,其特征在于,所述方法应用于分布式系统中,所述分布式系统包括一个协调者节点和至少两个参与者节点,所述协调者节点与每个所述参与者节点通信连接,所述方法包括:
获取请求方设备发送的业务操作请求,所述业务操作请求中携带有业务操作的操作标识;
根据所述操作标识,从所有参与者节点中确定用于执行所述业务操作的至少两个目标参与者节点;
获取每个所述目标参与者节点的快照并保存,其中,所述快照是所述目标参与者节点中与所述业务操作对应的业务数据的快照;
调用各所述目标参与者节点分别执行对应的所述业务操作的子操作,并获取各所述目标参与者节点的执行结果;
若各所述目标参与者节点中存在一个节点的执行结果为执行失败,则向各所述目标参与者节点分别发送各节点所对应的快照,以使各所述目标参与者节点根据快照将对应的业务数据恢复至执行对应的子操作之前的状态;
其中,所述向各所述目标参与者节点分别发送各节点所对应的快照,以使各所述目标参与者节点根据快照将对应的业务数据恢复至执行对应的子操作之前的状态,包括:
若所述业务操作满足原子性特性,则向执行成功的目标参与者节点发送对应的快照,若所述业务操作不满足原子性特性,则向执行成功以及执行部分进度成功的目标参与者节点发送对应的快照。
2.根据权利要求1所述的方法,其特征在于,所述调用各所述目标参与者节点分别执行对应的所述业务操作的子操作,包括:
若获取到每个所述目标参与者节点的快照,则调用各所述目标参与者节点分别执行对应的子操作;
所述方法还包括:
若各所述目标参与者节点中存在一个节点的快照未获取到,则向所述请求方设备返回操作失败提示信息。
3.根据权利要求1所述的方法,其特征在于,所述向各所述目标参与者节点分别发送各节点所对应的快照,以使各所述目标参与者节点根据快照将对应的业务数据恢复至执行对应的子操作之前的状态,包括:
根据各所述目标参与者节点的执行结果,向各所述目标参与节点中执行结果为成功的目标参与节点发送对应的快照,以使执行结果为成功的各目标参与节点根据快照将对应的业务数据恢复至执行对应的子操作之前的状态。
4.根据权利要求1所述的方法,其特征在于,若所述目标参与者节点对应的所述业务操作的子操作为至少两个,所述目标参与者节点中与所述业务操作对应的业务数据,为所述目标参与者节点中与所有子操作对应的业务数据;
所述目标参与者节点根据快照将对应的业务数据恢复至执行对应的子操作之前的状态,是指所述目标参与者节点根据快照将该节点中与所述所有子操作对应的业务数据一次性恢复至所有子操作之前的状态。
5.根据权利要求1所述的方法,其特征在于,若所述业务操作请求包括至少两个,且所述至少两个业务操作请求中不同的业务操作请求对应的目标参与者节点中包括相同的节点,则同时对应于不同的业务操作请求的目标参与者节点的快照,包括节点中对应于不同的业务操作请求的业务数据的快照;
若执行结果为执行失败的业务操作请求为同时对应于不同的业务操作请求的目标参与者节点所对应的操作请求,则所述向各所述目标参与者节点分别发送各节点所对应的快照,包括:
向同时对应于不同的业务操作请求的目标参与者节点,发送所述目标参与者节点的执行结果为执行失败的业务操作请求对应的快照。
6.根据权利要求1至5中任一项所述的方法,其特征在于,所述根据所述操作标识,从所有参与者节点中确定用于执行所述业务操作的至少两个目标参与者节点,包括:
根据所述操作标识和预配置的服务映射关系,确定用于执行所述业务操作的至少两个目标参与者节点;
其中,所述服务映射关系为各操作标识与用于执行各操作标识所对应的业务操作的各参与者节点的节点相关信息的对应关系。
7.根据权利要求6所述的方法,其特征在于,所述节点相关信息包括参与者节点的业务操作接口调用地址、快照生成接口调用地址、以及回滚接口调用地址。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于腾讯科技(深圳)有限公司,未经腾讯科技(深圳)有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201910786076.4/1.html,转载请声明来源钻瓜专利网。





