【技术实现步骤摘要】
一种分布式锁服务实现方法、装置及计算机设备
[0001]本专利技术涉及互联网
,尤其涉及一种分布式锁服务实现方法、装置及计算机设备。
技术介绍
[0002]在分布式系统中,如果不同的系统或者同一个系统的不同主机之间共享了一个或者一组资源,那么在访问这些资源的时候,往往需要配置为互斥,防止彼此干扰以保证一致性,为实现该功能及需要使用分布式锁。分布式锁一般具有以下特点:
[0003](1)互斥性。即同一时刻只有一个线程能获取到锁。
[0004](2)可重入性。即同一个节点上的同一个线程如果获取到了锁,那么也可以再次获取到这个锁。
[0005](3)锁超时。即锁超时之后会自动释放锁,防止死锁。
[0006](4)支持阻塞和非阻塞。即可以指定超时时间返回,在超时时间内,获取到锁立即返回获取成功,超时后则返回获取锁失败。
[0007]目前,常用的分布式锁服务实现主要为redis、zookeeper、etcd等,但是这些分布式锁中锁的粒度是固定的,由于分布式锁服务具有互斥性,因而当一个进程获 ...
【技术保护点】
【技术特征摘要】
1.一种分布式锁服务实现方法,其特征在于,包括:接收客户端发送的上锁请求,所述上锁请求中携带有租约信息以及所述租约信息对应的至少一个上锁资源;获取预先配置的各个锁之间是否存在冲突的冲突类型配置信息;根据所述冲突类型配置信息,确定是否为所述上锁请求中所述上锁资源发起上锁请求,其中如果上锁不存在冲突则发起上锁请求、如果上锁存在冲突则不发起上锁请求。2.根据权利要求1所述的分布式锁服务实现方法,其特征在于,所述根据所述冲突类型配置信息,确定是否为所述上锁请求中所述上锁资源发起上锁请求,包括:检查所述上锁资源是否已被获取;当所述被上锁资源已被获取时,提取所述上锁资源的上锁状态;比对所述上锁状态中的上锁线程与本次上锁使用的线程,确定是否线程重入;若确定线程未重入,则根据所述冲突类型配置信息检查上锁是否冲突,在确定上锁不冲突时发起上锁请求,否则反馈上锁失败信息;若确定线程重入,则反馈上锁成功的信息。3.根据权利要求2所述的分布式锁服务实现方法,其特征在于,所述方法还包括:当确定所述上锁资源未被获取时,向分布式锁中间件发送携带有所述上锁资源以及上锁的超时时间的上锁请求,使得所述分布式锁中间件根据所述超时时间对所述被上锁资源进行上锁;接收所述分布式锁中间件的反馈信息,根据所述反馈信息进行上锁反馈。4.根据权利要求1所述的分布式锁服务实现方法,其特征在于,在上锁成功之后,所述方法还包括:定期检查当前所有锁的超时状态;如果存在待续约锁处于超时状态,且存在未超时的线程共享所述待续约锁,则向分布式锁中间件发送锁续约请求,以使得所述分布式锁中间件更新所述待续约锁的状态。5.根据权利要求4所述的分布式锁服务实现方法,其特征在于,所述定期检查当前所有锁的超时状态包括:接收心跳信息续约请求,所述心跳信息续约请求由占用锁的所述客户端定期发送;根据所述心跳信息续约请求中心跳信息是否超时,判断锁的超时状态。6.根据权利要求4所述的分布式锁服务实现方法,其特征在于,该方法还包括:获取预先配置的链表;由所述链表中的每个元素作为一个...
【专利技术属性】
技术研发人员:陈敏,曾琰,林鹏,黄九鸣,张圣栋,
申请(专利权)人:湖南四方天箭信息科技有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。