[发明专利]分布式锁的调用方法、装置、计算机设备及存储介质在审
申请号: | 202010147521.5 | 申请日: | 2020-03-05 |
公开(公告)号: | CN111475516A | 公开(公告)日: | 2020-07-31 |
发明(设计)人: | 朱承荣 | 申请(专利权)人: | 深圳壹账通智能科技有限公司 |
主分类号: | G06F16/23 | 分类号: | G06F16/23 |
代理公司: | 深圳市世联合知识产权代理有限公司 44385 | 代理人: | 汪琳琳 |
地址: | 518000 广东省深圳市前海深港合作区前*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 分布式 调用 方法 装置 计算机 设备 存储 介质 | ||
1.一种分布式锁的调用方法,其特征在于,包括下述步骤:
根据分布式锁的框架内容,预设与分布式锁对应的至少一组调用函数;
针对每一组调用函数,定义至少一组相对应的注解,所述注解中包括指定对应业务代码的参数,并且所述注解均具有标记以表明注解的种类;
将所述注解插入到业务代码需要操作分布式锁的相应位置;
在运行业务代码的状态下,根据插入的至少一组注解的种类和所述注解当中设置的参数,执行分布式锁的调用和/或释放。
2.根据权利要求1所述的一种分布式锁的调用方法,其特征在于,所述在运行业务代码的状态下,根据插入的至少一组注解的种类和包含的参数,执行分布式锁的调用和/或释放的步骤具体包括:
连接分布式锁服务端,根据所述注解的种类和包含的参数创建临时节点;
判断所述临时节点是否为最小临时节点;
如果不是最小临时节点,则监听比自身优先级高一位的临时节点,直到所述优先级高一位的节点释放分布式锁;
如果为最小临时节点或者没有其他临时节点正在排队和使用分布式锁,获取分布式锁,并触发业务代码实现主要功能;
业务代码实现主要功能后,释放分布式锁。
3.根据权利要求2所述的一种分布式锁的调用方法,其特征在于,临时节点名称用于确定该业务代码对应临时节点的路径位置;
所述根据所述注解的种类和包含的参数创建临时节点的步骤具体包括:
遍历业务代码,判断是否有预定义的临时节点名称;
如果存在所述预定义的临时节点名称,则根据预定义的临时节点名称确定临时节点的路径;
如果不存在所述预定义的临时节点名称,则根据业务代码的名称确定一个临时节点的路径,并生成临时节点对应的临时节点名称;
将与临时节点名称对应的所述路径加入到序列当中以完成临时节点的创建。
4.根据权利要求3所述的一种分布式锁的调用方法,其特征在于,在所述连接分布式锁服务端,根据所述注解的种类和包含的参数创建临时节点的步骤之前还包括:
触发到所述注解时,遍历所有的业务代码,提取业务代码中所有的分布式锁相关的注解,以获取该业务代码所需要的所有分布式锁相关操作;
根据所述临时节点名称,提取相互相关的所述注解。
5.根据权利要求3所述的一种分布式锁的调用方法,其特征在于,所述参数还包括超时时间,所述超时时间用于设置获取到分布式锁之后的超时时间,防止分布式锁的发放陷入死锁;在所述获取分布式锁,并触发业务代码实现主要功能的步骤之后还包括:
监控分布式锁占用时间;
若分布式锁占用时间超过了所述超时时间,重新根据所述注解生成临时节点并排序。
6.根据权利要求1-5任意一项所述的一种分布式锁的调用方法,其特征在于,将所述注解插入到业务代码需要操作分布式锁的相应位置,具体包括:
在业务代码的开始位置插入获取分布式锁种类的注解;
在业务代码结束位置插入释放分布式锁种类的注解。
7.一种分布式锁的调用装置,其特征在于,包括:
函数生成模块,用于根据分布式锁的框架内容,预设与分布式锁对应的至少一组调用函数;
注解模块,用于针对每一组调用函数,定义至少一组相对应的注解,所述注解中包括指定对应业务代码的参数,并且所述注解均具有标记以表明注解的种类;还用于将所述注解插入到业务代码需要操作分布式锁的相应位置;及
执行模块,用于在运行业务代码的状态下,根据插入的至少一组注解的种类和所述注解当中设置的参数,执行分布式锁的调用和/或释放。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于深圳壹账通智能科技有限公司,未经深圳壹账通智能科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202010147521.5/1.html,转载请声明来源钻瓜专利网。