[发明专利]构建用于Redis数据库的分布式锁的方法有效

专利信息
申请号: 201910583604.6 申请日: 2019-07-01
公开(公告)号: CN110287206B 公开(公告)日: 2021-04-27
发明(设计)人: 李长彬 申请(专利权)人: 四川新网银行股份有限公司
主分类号: G06F16/23 分类号: G06F16/23
代理公司: 成都智言知识产权代理有限公司 51282 代理人: 濮云杉
地址: 610094 四川省成都市成都*** 国省代码: 四川;51
权利要求书: 查看更多 说明书: 查看更多
摘要:
搜索关键词: 构建 用于 redis 数据库 分布式 方法
【权利要求书】:

1.构建用于Redis数据库的分布式锁的方法,其特征包括:

A.在RabbitMQ中创建死信交换机和直连交换机,以及创建死信队列和分布式锁队列,将死信队列和死信交换机绑定,分布式锁队列分别与死信交换机分别和直连交换机绑定;步骤A包括:

A1.在RabbitMQ中创建类型为direct的死信交换机;

A2.创建用于存放死信消息的死信队列,所述的死信交换机与死信队列通过对应的路由键进行绑定;

A3.创建类型为direct的直连交换机;

A4.创建用于存储分布式锁信息的分布式锁队列,并与死信队列通过对应的路由键进行绑定;设置消息的存活时间;

B.定义基于Redssion的用于获取分布式锁和释放分布式锁的工具类;

C.定义死信队列的消费者类,该类用于获取死信队列中的消息,并决定是否重置锁失效时间;

D.在需要获取分布式锁的业务里调用工具类中的加锁方法,得到加锁是否成功的结果;

E.如果步骤D加锁成功,则执行业务代码,得到业务结果;如果加锁失败,退出执行业务代码;

F.得到业务结果后,调用工具类中的解锁方法用于释放锁,得到锁释放,整个业务流程完成。

2.如权利要求1所述的构建用于Redis数据库的分布式锁的方法,其特征为:在步骤B所述的工具类中包含有四个方法,分别为:

tryLock方法:用于尝试获取分布式锁并发送分布式锁名称到分布式锁队列;

unlock方法:用于释放分布式锁;

isExists方法:用于判断分布式锁是否存在;

expire方法:用于重置锁失效时间。

3.如权利要求2所述的构建用于Redis数据库的分布式锁的方法,其特征为:在tryLock方法中包含四个参数:分布式锁名称、等待锁时间、锁失效时间和时间单位,调用该方法后如果返回结果为true表示加锁成功,返回结果为false表示加锁失败;

在unlock方法中包含分布式锁名称的参数;

在isExists方法中包含分布式锁名称的参数,该方法返回结果如果为true表示锁存在,如果为false表示锁不存在;

在expire方法有三个参数:分布式锁名称、锁失效时间和锁失效时间单位。

4.如权利要求1所述的构建用于Redis数据库的分布式锁的方法,其特征为:步骤C所述的消费者类先获取死信队列中的消息,通过调用工具类中的方法判断锁是否释放,如没有被释放,向日志文件打印告警日志,然后再通过工具类进行重置锁失效时间,并将所述死信队列中的消息投递回分布锁队列,当该消息过期后会重新投递回死信队列进入步骤C,直到锁释放;如锁已释放不做任何处理。

下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。

该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于四川新网银行股份有限公司,未经四川新网银行股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服

本文链接:http://www.vipzhuanli.com/pat/books/201910583604.6/1.html,转载请声明来源钻瓜专利网。

×

专利文献下载

说明:

1、专利原文基于中国国家知识产权局专利说明书;

2、支持发明专利 、实用新型专利、外观设计专利(升级中);

3、专利数据每周两次同步更新,支持Adobe PDF格式;

4、内容包括专利技术的结构示意图流程工艺图技术构造图

5、已全新升级为极速版,下载速度显著提升!欢迎使用!

请您登陆后,进行下载,点击【登陆】 【注册】

关于我们 寻求报道 投稿须知 广告合作 版权声明 网站地图 友情链接 企业标识 联系我们

钻瓜专利网在线咨询

周一至周五 9:00-18:00

咨询在线客服咨询在线客服
tel code back_top