The invention discloses a method for managing a distributed lock and a computer readable storage medium. The method, which are applied in the Redis system, at least for concurrent Redis system of two access request; according to the preset sequencing strategy, for the at least two access requests sorted access queue to become serial access; each serial queue access request are respectively provided notice of setting up the distributed lock; distributed lock access request response.
【技术实现步骤摘要】
管理分布式锁的方法和计算机可读存储介质
本专利技术涉及信息处理领域,尤指一种管理分布式锁的方法和计算机可读存储介质。
技术介绍
目前几乎很多大型网站及应用都是分布式部署的,分布式场景中的数据一致性问题一直是一个比较重要的话题。由于任何一个分布式系统都无法同时满足一致性(Consistency)、可用性(Availability)和分区容错性(Partitiontolerance),最多只能同时满足两项,所以,很多系统在设计之初就要对这三者做出取舍。在互联网领域的绝大多数的场景中,都需要牺牲强一致性来换取系统的高可用性,系统往往只需要保证“最终一致性”,只要这个最终时间是在用户可以接受的范围内即可。在很多场景中,我们为了保证数据的最终一致性,需要很多的技术方案来支持,比如分布式事务、分布式锁等。有的时候,我们需要保证一个方法在同一时间内只能被同一个线程执行。在单机环境中,Java中其实提供了很多并发处理相关的API,但是这些API在分布式场景中就无能为力了。也就是说单纯的JavaApi并不能提供分布式锁的能力。分布式锁是控制分布式系统之间同步访问共享资源的一种方式。在分布式系统中,常常需要协调他们的动作。如果不同的系统或是同一个系统的不同主机之间共享了一个或一组资源,那么访问这些资源的时候,往往需要互斥来防止彼此干扰来保证一致性,在这种情况下,便需要使用到分布式锁。Redis是一个高性能的key-value数据库,它支持存储的value类型相对较多,包括string(字符串)、list(链表)、set(集合)、zset(sortedset有序集合)和hash ...
【技术保护点】
一种管理分布式锁的方法,应用于Redis系统,其特征在于,包括:获取Redis系统中并发的至少两个访问请求;按照预先设置的排序策略,为所述至少两个访问请求进行排序,成为访问串行队列;对访问串行队列中每个访问请求分别设置分布式锁;通知对设置完分布式锁的访问请求进行响应。
【技术特征摘要】
1.一种管理分布式锁的方法,应用于Redis系统,其特征在于,包括:获取Redis系统中并发的至少两个访问请求;按照预先设置的排序策略,为所述至少两个访问请求进行排序,成为访问串行队列;对访问串行队列中每个访问请求分别设置分布式锁;通知对设置完分布式锁的访问请求进行响应。2.根据权利要求1所述的方法,其特征在于,所述通知对设置完分布式锁的访问请求进行响应之后,所述方法还包括:检测所述访问请求是否已经响应完成;如果检测所述访问请求已经响应完成,则释放所述访问请求的分布式锁。3.根据权利要求1或2所述的方法,其特征在于,所述通知对设置完分布式锁的访问请求进行响应之后,所述方法还包括:按照预先设置的获取时间策略,获取访问请求的分布式锁上的时间信息;将当前得到的第一时间信息与上一次获取的时间信息进行对比;如果当前得到的第一时间信息与上一次获取的时间信息相同,则确定所述访问请求的分布式锁处于故障状态。4.根据权利要求3所述的方法,其特征在于,所述如果当前得到的第一时间信息与上一次获取的时间信息相同之后,所述方法还包括:按照所述获取时间策略,再次获取访问请求的分布式锁上的时间信息,并与所述第一时间信息进行比较,直到比较结果为相同的次数大于预先设置的阈值时,所述访问请求的分布式锁处于故障状态。5.根据权利要求3所述的方法,其特征在于,所述确定所述访问请求的分布式锁处于故障状态之后,所述方法还包括:获取出现故障的分布式锁对应的访问请求所占用的物理资源;判断所述物理资源是否阻碍其他线程的任务处理;如果所述物理资源阻碍其他线程的任务处理,则释放所述出现故障的分布式锁。6.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现如下步骤,包括:请求获取步骤,获取Redis系统中并发的至少两个访问请...
【专利技术属性】
技术研发人员:李栋梁,房体盈,金洪殿,
申请(专利权)人:郑州云海信息技术有限公司,
类型:发明
国别省市:河南,41
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。