[发明专利]管理分布式锁的方法和计算机可读存储介质在审
申请号: | 201711102625.9 | 申请日: | 2017-11-10 |
公开(公告)号: | CN107832159A | 公开(公告)日: | 2018-03-23 |
发明(设计)人: | 李栋梁;房体盈;金洪殿 | 申请(专利权)人: | 郑州云海信息技术有限公司 |
主分类号: | G06F9/52 | 分类号: | G06F9/52 |
代理公司: | 北京安信方达知识产权代理有限公司11262 | 代理人: | 李红爽,李丹 |
地址: | 450018 河南省郑州市*** | 国省代码: | 河南;41 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 管理 分布式 方法 计算机 可读 存储 介质 | ||
技术领域
本发明涉及信息处理领域,尤指一种管理分布式锁的方法和计算机可读存储介质。
背景技术
目前几乎很多大型网站及应用都是分布式部署的,分布式场景中的数据一致性问题一直是一个比较重要的话题。由于任何一个分布式系统都无法同时满足一致性(Consistency)、可用性(Availability)和分区容错性(Partition tolerance),最多只能同时满足两项,所以,很多系统在设计之初就要对这三者做出取舍。在互联网领域的绝大多数的场景中,都需要牺牲强一致性来换取系统的高可用性,系统往往只需要保证“最终一致性”,只要这个最终时间是在用户可以接受的范围内即可。
在很多场景中,我们为了保证数据的最终一致性,需要很多的技术方案来支持,比如分布式事务、分布式锁等。有的时候,我们需要保证一个方法在同一时间内只能被同一个线程执行。在单机环境中,Java中其实提供了很多并发处理相关的API,但是这些API在分布式场景中就无能为力了。也就是说单纯的Java Api并不能提供分布式锁的能力。
分布式锁是控制分布式系统之间同步访问共享资源的一种方式。在分布式系统中,常常需要协调他们的动作。如果不同的系统或是同一个系统的不同主机之间共享了一个或一组资源,那么访问这些资源的时候,往往需要互斥来防止彼此干扰来保证一致性,在这种情况下,便需要使用到分布式锁。
Redis是一个高性能的key-value数据库,它支持存储的value类型相对较多,包括string(字符串)、list(链表)、set(集合)、zset(sorted set有序集合)和hash(哈希类型)。这些数据类型都支持push/pop、add/remove及取交集并集和差集及更丰富的操作,而且这些操作都是原子性的。
那么,如何在Redis中实现分布式锁的管理是亟待解决的问题。
发明内容
为了解决上述技术问题,本发明提供了一种管理分布式锁的方法和计算机可读存储介质,能够在Redis中实现分布式锁的管理。
为了达到本发明目的,本发明提供了一种管理分布式锁的方法,应用于Redis系统,包括:
获取Redis系统中并发的至少两个访问请求;
按照预先设置的排序策略,为所述至少两个访问请求进行排序,成为访问串行队列;
对访问串行队列中每个访问请求分别设置分布式锁;
通知对设置完分布式锁的访问请求进行响应。
其中,所述方法还具有如下特点:所述通知对设置完分布式锁的访问请求进行响应之后,所述方法还包括:
检测所述访问请求是否已经响应完成;
如果检测所述访问请求已经响应完成,则释放所述访问请求的分布式锁。
其中,所述方法还具有如下特点:所述通知对设置完分布式锁的访问请求进行响应之后,所述方法还包括:
按照预先设置的获取时间策略,获取访问请求的分布式锁上的时间信息;
将当前得到的第一时间信息与上一次获取的时间信息进行对比;
如果当前得到的第一时间信息与上一次获取的时间信息相同,则确定所述访问请求的分布式锁处于故障状态。
其中,所述方法还具有如下特点:所述如果当前得到的第一时间信息与上一次获取的时间信息相同之后,所述方法还包括:
按照所述获取时间策略,再次获取访问请求的分布式锁上的时间信息,并与所述第一时间信息进行比较,直到比较结果为相同的次数大于预先设置的阈值时,所述访问请求的分布式锁处于故障状态。
其中,所述方法还具有如下特点:所述确定所述访问请求的分布式锁处于故障状态之后,所述方法还包括:
获取出现故障的分布式锁对应的访问请求所占用的物理资源;
判断所述物理资源是否阻碍其他线程的任务处理;
如果所述物理资源阻碍其他线程的任务处理,则释放所述出现故障的分布式锁。
一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如下步骤,包括:
请求获取步骤,获取Redis系统中并发的至少两个访问请求;
请求排序步骤,按照预先设置的排序策略,为所述至少两个访问请求进行排序,成为访问串行队列;
设置步骤,对访问串行队列中每个访问请求分别设置分布式锁;
通知步骤,通知对设置完分布式锁的访问请求进行响应。
其中,所述计算机可读存储介质还具有如下特点:该程序被处理器执行时在所述通知对设置完分布式锁的访问请求进行响应之后,还实现如下步骤:
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于郑州云海信息技术有限公司,未经郑州云海信息技术有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201711102625.9/2.html,转载请声明来源钻瓜专利网。