[发明专利]可重入分布式锁的实现方法、装置、电子设备及存储介质在审
申请号: | 202110735810.1 | 申请日: | 2021-06-30 |
公开(公告)号: | CN113535416A | 公开(公告)日: | 2021-10-22 |
发明(设计)人: | 张艺坤 | 申请(专利权)人: | 北京百度网讯科技有限公司 |
主分类号: | G06F9/52 | 分类号: | G06F9/52;G06F9/54;G06F16/23;G06F16/22;G06F16/25 |
代理公司: | 北京柏杉松知识产权代理事务所(普通合伙) 11413 | 代理人: | 马敬;高莺然 |
地址: | 100085 北京市*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 可重入 分布式 实现 方法 装置 电子设备 存储 介质 | ||
本公开公开了一种可重入分布式锁的实现方法、装置、电子设备及存储介质,涉及计算机技术领域,尤其涉及云计算技术领域。具体实现方案为:获取客户端发送的加锁请求,加锁请求中包含第一区域标识、第一上锁键值、目标主机标识和加锁持续时间;查询Mysql数据库的分布式锁表中是否存在包含第一区域标识和第一上锁键值的未过期表项;若存在,判断未过期表项包含的主机标识是否与目标主机标识一致,若是,则基于加锁持续时间更新未过期表项的过期时间,并通知客户端加锁成功。实现了高效易用的可重入分布式锁。
技术领域
本公开涉及计算机技术领域,尤其涉及云计算技术领域。
背景技术
在分布式系统中,常常需要协调各系统的动作。如果不同的系统或同一个系统的不同主机之间共享了一个或一组资源,那么访问这些资源的时候,往往需要互斥来防止彼此干扰,在这种情况下,便需要使用到分布式锁。分布式锁控制主机对资源的争抢,保证操作正确性。
发明内容
本公开提供了一种可重入分布式锁的实现方法、装置、电子设备及存储介质。
根据本公开的一方面,提供了一种可重入分布式锁的实现方法,应用于基于spring框架构建的分布式系统中的服务器,所述分布式系统还包括Mysql数据库和分布于多个区域的多个主机的客户端,所述方法包括:
获取客户端发送的加锁请求,所述加锁请求中包含第一区域标识、第一上锁键值、目标主机标识和加锁持续时间;
查询所述Mysql数据库的分布式锁表中是否存在包含所述第一区域标识和所述第一上锁键值的未过期表项;
若存在,判断所述未过期表项包含的主机标识是否与所述目标主机标识一致,若是,则基于所述加锁持续时间更新所述未过期表项的过期时间,并通知所述客户端加锁成功。
根据本公开的另一方面,提供了一种可重入分布式锁的实现装置,应用于基于spring框架构建的分布式系统中的服务器,所述分布式系统还包括Mysql数据库和分布于多个区域的多个主机的客户端,所述装置包括:
第一获取模块,用于获取客户端发送的加锁请求,所述加锁请求中包含第一区域标识、第一上锁键值、目标主机标识和加锁持续时间;
第一查询模块,用于查询所述Mysql数据库的分布式锁表中是否存在包含所述第一区域标识和所述第一上锁键值的未过期表项;若存在,触发判断模块;
所述判断模块,用于判断所述未过期表项包含的主机标识是否与所述目标主机标识一致,若是,触发加锁模块;
所述加锁模块,用于基于所述加锁持续时间更新所述未过期表项的过期时间,并通知所述客户端加锁成功。
根据本公开的又一方面,提供了一种电子设备,包括:
至少一个处理器;以及
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行可重入分布式锁的实现方法。
根据本公开的又一方面,提供了一种存储有计算机指令的非瞬时计算机可读存储介质,其中,所述计算机指令用于使所述计算机执行可重入分布式锁的实现方法。
根据本公开的又一方面,提供了一种计算机程序产品,包括计算机程序,所述计算机程序在被处理器执行时实现可重入分布式锁的实现方法。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京百度网讯科技有限公司,未经北京百度网讯科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202110735810.1/2.html,转载请声明来源钻瓜专利网。