[发明专利]一种基于分布式事务锁实现数据一致性的方法和装置有效
| 申请号: | 202211353874.6 | 申请日: | 2022-11-01 |
| 公开(公告)号: | CN115495205B | 公开(公告)日: | 2023-03-14 |
| 发明(设计)人: | 王骏涛;徐斌;何怀兵;周雨;吴一凡;胡亚林;明小民;石薇 | 申请(专利权)人: | 武汉大数据产业发展有限公司 |
| 主分类号: | G06F9/46 | 分类号: | G06F9/46;G06F9/52;G06F11/14 |
| 代理公司: | 武汉智嘉联合知识产权代理事务所(普通合伙) 42231 | 代理人: | 黄君军 |
| 地址: | 430021 湖北省武汉*** | 国省代码: | 湖北;42 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 一种 基于 分布式 事务 实现 数据一致性 方法 装置 | ||
1.一种基于分布式事务锁实现数据一致性的方法,应用于微服务架构下的轻量级设备与HTTP型API交互数据一致性的实现,其特征在于,包括:
初始化目标事务的事务执行队列、事务提交队列和事务全局状态锁;
根据所述事务执行队列确定分布式事务执行方案,所述分布式事务执行方案的执行过程包括预执行过程、等待过程和提交过程;
执行所述分布式事务执行方案的同时实时更新所述目标事务的事务全局状态锁的事务状态,并判断更新后的所述事务全局状态锁的事务状态是否为正常执行状态;所述分布式事务执行方案包括多个子方案,根据所述事务执行队列的队列顺序分别启动所述多个子方案的执行过程;判断任意一个子方案在事务执行前所述事务全局状态锁的事务状态,其中,所述事务状态包括正常执行状态、出错状态和开始状态;若所述事务全局状态锁的事务状态为出错状态,则终止所述任意一个子方案的执行,并对所述子方案进行回滚操作;若所述事务全局状态锁的事务状态为正常执行状态且执行过程未超时,则执行所述任意一个子方案;
判断所述任意一个子方案的所述预执行过程是否正确;若错误,则将所述事务状态重置为出错状态;若正确,则判断所述任意一个子方案是否为所述事务执行队列的队列顺序中的最后一个子方案;若否,则将所述任意一个子方案的预执行过程切换为等待过程;若是,则将所述任意一个子方案的预执行过程切换为提交过程,并将所述事务全局状态锁的事务状态重置为正常执行状态。
2.根据权利要求1所述的基于分布式事务锁实现数据一致性的方法,其特征在于,所述初始化事务全局状态锁,包括:
创建事务全局状态锁,将所述目标事务对应的事务全局状态锁的事务状态初始化为开始状态。
3.根据权利要求2所述的基于分布式事务锁实现数据一致性的方法,其特征在于,在根据所述事务执行队列的队列顺序分别启动所述多个子方案的执行过程的同时,启动守护程序对所述多个子方案的执行过程进行监测,以实时获取事务全局状态锁的事务状态和执行事务进程的单节点事务的提交和回滚操作。
4.根据权利要求3所述的基于分布式事务锁实现数据一致性的方法,其特征在于,所述启动守护程序对所述多个子方案的执行过程进行监测,包括:
判断所述任意一个子方案在事务执行过程中是否超时;
若超时,则销毁所述守护程序并对所述子方案进行回滚操作;
若未超时,则判断所述事务全局状态锁的事务状态;
若所述事务状态为出错状态,则销毁所述守护程序并对所述子方案进行回滚操作;
若所述事务状态为正常执行状态,则判断所述子方案的执行过程是否与所述事务提交队列的提交顺序一致;
若一致,则根据所述事务提交队列,对所述子方案执行提交操作;
若不一致,则在一设定时间内暂停所述守护程序,并在达到设定时间后,重新开启所述守护程序,直至所述子方案的执行过程与所述事务提交队列一致为止。
5.根据权利要求2所述的基于分布式事务锁实现数据一致性的方法,其特征在于,当预设的分布式事务执行方案执行完成后,则结束所述事务全局状态锁。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于武汉大数据产业发展有限公司,未经武汉大数据产业发展有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202211353874.6/1.html,转载请声明来源钻瓜专利网。
- 上一篇:一种用于离心泵的涡轮转子结构
- 下一篇:锚尾锥及带锚尾锥的锚杆装置





