分布式锁的实现方法、装置、电子设备及介质制造方法及图纸

技术编号:31848189 阅读:17 留言:0更新日期:2022-01-12 13:29
本公开关于一种分布式锁的实现方法、装置、电子设备及介质,涉及计算机技术领域。由集群服务节点执行的方法包括:向服务器发送申请操作锁的请求;若服务器将操作锁分配给集群服务节点,则获取数据分段锁锁定的数据集合;若数据分段锁锁定的数据集合与待加锁数据集合不存在交集,则将待加锁数据集合写入数据分段锁锁定的数据集合中;释放操作锁;获得待加锁数据集合对应的数据分段锁。该方法采用操作锁和数据分段锁的双重锁操作,实现多个服务节点对数据集合的不同分段加锁,解决相关技术中无法对大批量数据进行并发操作的问题。法对大批量数据进行并发操作的问题。法对大批量数据进行并发操作的问题。

【技术实现步骤摘要】
分布式锁的实现方法、装置、电子设备及介质


[0001]本公开涉及计算机
,尤其涉及一种分布式锁的实现方法、分布式锁的实现装置、电子设备以及计算机可读存储介质。

技术介绍

[0002]分布式锁是控制分布式系统或不同系统之间共同访问共享资源的一种锁实现,如果不同的系统或同一个系统的不同主机之间共享了某个资源时,往往需要互斥来防止彼此干扰来保证一致性。相关技术中基于Redis实现分布式锁,主要包含加锁和解锁这两个操作,在操作共享资源之前需要先获取锁,操作完毕后需要释放锁。但是,现有的锁只能锁单条记录,无法处理同时锁大批量记录的情况,即无法对大批量数据进行并发操作。
[0003]需要说明的是,在上述
技术介绍
部分公开的信息仅用于加强对本公开的背景的理解,因此可以包括不构成对本领域普通技术人员已知的现有技术的信息。

技术实现思路

[0004]本公开提供一种分布式锁的实现方法、分布式锁的实现装置、电子设备以及计算机可读存储介质,以至少解决相关技术中无法对大批量数据进行并发操作的问题。本公开的技术方案如下:根据本公开实施例的一个方面,提供一种分布式锁的实现方法,应用于集群服务节点,包括:向服务器发送申请操作锁的请求;若所述服务器将操作锁分配给所述集群服务节点,则获取数据分段锁锁定的数据集合;若所述数据分段锁锁定的数据集合与待加锁数据集合不存在交集,则将所述待加锁数据集合写入所述数据分段锁锁定的数据集合中;释放所述操作锁;获得所述待加锁数据集合对应的数据分段锁。
[0005]在本公开的一个实施例中,将所述待加锁数据集合写入所述数据分段锁锁定的数据集合中,包括:确定所述待加锁数据集合对应的数据分段锁;根据所述待加锁数据集合对应的数据分段锁的唯一标识,将所述待加锁数据集合写入所述数据分段锁锁定的数据集合中。
[0006]在本公开的一个实施例中,在获得所述待加锁数据集合对应的数据分段锁之后,所述方法还包括:执行业务操作;在业务操作完成后,将所述待加锁数据集合从所述数据分段锁锁定的数据集合中移除,释放所述待加锁数据集合对应的数据分段锁。
[0007]在本公开的一个实施例中,所述方法还包括:若所述数据分段锁锁定的数据集合与所述待加锁数据集合存在交集,则进入等待状态;等待锁定所述交集的数据分段锁被释放之后,申请数据分段锁。
[0008]在本公开的一个实施例中,所述方法还包括:若在预设等待时间内所述锁定所述交集的数据分段锁未被释放,则释放所述操作锁。
[0009]在本公开的一个实施例中,所述方法还包括:若所述服务器未将所述操作锁分配给所述集群服务节点,则进入等待状态;等待持有所述操作锁的服务节点释放所述操作锁
之后,申请所述操作锁。
[0010]根据本公开实施例的另一方面,提供一种分布式锁的实现方法,应用于服务器,包括:接收集群服务节点发送的申请操作锁的请求;若操作锁未被其他服务节点持有,则将所述操作锁分配给所述集群服务节点;若操作锁被其他服务节点持有,则令所述集群服务节点进入等待状态,等待持有所述操作锁的服务节点释放所述操作锁之后,将所述操作锁分配给所述集群服务节点;以及,在将所述操作锁分配给所述集群服务节点之后,若数据分段锁锁定的数据集合与待加锁数据集合不存在交集,生成所述待加锁数据集合对应的数据分段锁。
[0011]根据本公开实施例的又一方面,提供一种分布式锁的实现装置,应用于集群服务节点,包括:申请锁模块,被配置为向服务器发送申请操作锁的请求;数据获取模块,被配置为若所述服务器将操作锁分配给所述集群服务节点,则获取数据分段锁锁定的数据集合;写入模块,被配置为若所述数据分段锁锁定的数据集合与待加锁数据集合不存在交集,则将所述待加锁数据集合写入所述数据分段锁锁定的数据集合中;释放锁模块,被配置为释放所述操作锁;锁获取模块,被配置为获得所述待加锁数据集合对应的数据分段锁。
[0012]在本公开的一个实施例中,所述写入模块被配置为:确定所述待加锁数据集合对应的数据分段锁;根据所述待加锁数据集合对应的数据分段锁的唯一标识,将所述待加锁数据集合写入所述数据分段锁锁定的数据集合中。
[0013]在本公开的一个实施例中,还包括执行模块,被配置为:执行业务操作;以及,所述释放锁模块被配置为:在业务操作完成后,将所述待加锁数据集合从所述数据分段锁锁定的数据集合中移除,释放所述待加锁数据集合对应的数据分段锁。
[0014]在本公开的一个实施例中,所述申请锁模块被配置为:若所述数据分段锁锁定的数据集合与所述待加锁数据集合存在交集,则进入等待状态;等待锁定所述交集的数据分段锁被释放之后,申请数据分段锁。
[0015]在本公开的一个实施例中,所述释放锁模块被配置为:若在预设等待时间内,所述锁定所述交集的数据分段锁未被释放,则释放所述操作锁。
[0016]在本公开的一个实施例中,所述申请锁模块被配置为:若所述服务器未将所述操作锁分配给所述集群服务节点,则进入等待状态;等待持有所述操作锁的服务节点释放所述操作锁之后,申请所述操作锁。
[0017]根据本公开实施例的又一方面,提供一种分布式锁的实现装置,应用于服务器,包括:接收模块,被配置为接收集群服务节点发送的申请操作锁的请求;分配模块,被配置为若操作锁未被其他服务节点持有,则将所述操作锁分配给所述集群服务节点;若操作锁被其他服务节点持有,则令所述集群服务节点进入等待状态,等待持有所述操作锁的服务节点释放所述操作锁之后,将所述操作锁分配给所述集群服务节点;生成模块,被配置为在将所述操作锁分配给所述集群服务节点之后,若数据分段锁锁定的数据集合与待加锁数据集合不存在交集,生成所述待加锁数据集合对应的数据分段锁。
[0018]根据本公开实施例的再一方面,提供一种电子设备,包括:处理器;用于存储所述处理器可执行指令的存储器;其中,所述处理器被配置为执行所述指令,以实现上述的分布式锁的实现方法。
[0019]根据本公开实施例的又一方面,提供一种计算机可读存储介质,当所述计算机可
读存储介质中的指令由电子设备的处理器执行时,使得电子设备能够执行上述的分布式锁的实现方法。
[0020]本公开的实施例提供的技术方案至少带来以下有益效果:在集群服务节点申请操作锁成功的情况下,如果数据分段锁锁定的数据集合和集群服务节点对应的待加锁数据集合的交集为空,通过写入数据的方式锁定待加锁数据集合,即对待加锁数据集合加锁,进而该集群服务节点可以执行业务操作,采用了操作锁和数据分段锁的双重锁操作,可以在多个服务节点对大批量数据进行操作时对数据集合的不同分段加锁,从而可以实现对大批量数据进行并发操作,解决相关技术中无法对大批量数据进行并发操作的问题。
[0021]应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。
附图说明
[0022]此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理,并不构成对本公开的本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种分布式锁的实现方法,应用于集群服务节点,其特征在于,包括:向服务器发送申请操作锁的请求;若所述服务器将操作锁分配给所述集群服务节点,则获取数据分段锁锁定的数据集合;若所述数据分段锁锁定的数据集合与待加锁数据集合不存在交集,则将所述待加锁数据集合写入所述数据分段锁锁定的数据集合中;释放所述操作锁;获得所述待加锁数据集合对应的数据分段锁。2.根据权利要求1所述的方法,其特征在于,将所述待加锁数据集合写入所述数据分段锁锁定的数据集合中,包括:确定所述待加锁数据集合对应的数据分段锁;根据所述待加锁数据集合对应的数据分段锁的唯一标识,将所述待加锁数据集合写入所述数据分段锁锁定的数据集合中。3.根据权利要求1所述的方法,其特征在于,在获得所述待加锁数据集合对应的数据分段锁之后,所述方法还包括:执行业务操作;在业务操作完成后,将所述待加锁数据集合从所述数据分段锁锁定的数据集合中移除,释放所述待加锁数据集合对应的数据分段锁。4.根据权利要求1所述的方法,其特征在于,所述方法还包括:若所述数据分段锁锁定的数据集合与所述待加锁数据集合存在交集,则进入等待状态;等待锁定所述交集的数据分段锁被释放之后,申请数据分段锁。5.根据权利要求4所述的方法,其特征在于,所述方法还包括:若在预设等待时间内所述锁定所述交集的数据分段锁未被释放,则释放所述操作锁。6.根据权利要求1所述的方法,其特征在于,所述方法还包括:若所述服务器未将所述操作锁分配给所述集群服务节点,则进入等待状态;等待持有所述操作锁的服务节点释放所述操作锁之后,申请所述操作锁。7.一种分布式锁的实现方法,应用于服务器,其特征在于,包括:接收集群服务节点发送的申请操作锁的请求;若操作锁未被其他服务节点持有,则将所述操作锁分配给所述集群服务节点;若操作锁被其他服务节点持有,则令所述集群服务节点进入等待状态,等待持有所述操作锁的服务节点释放所述操作锁之后,将所述操作锁分配给所述集群服务节点;以及,在将所述操作锁分配给所述集群服务节点之后,若数据分段锁锁定的数据集合与待加锁数据集合不存在交集,生成所述待加锁数据集合对应的数据分段锁。8.一种分布式锁的实现装置,应用于集群服务节点,其特征在于,包括:申请锁模块,被配置为向服务器发送申请操作锁的请求;数据获取模块,被配置为若所述服务器将操作锁分配给所述集群服务节点,则获取数据分段锁锁定的数据集合;写入模块,被配置为若所述数据分段锁锁定的数据集合与待加锁数据集合不存在交

【专利技术属性】
技术研发人员:王军
申请(专利权)人:北京达佳互联信息技术有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1