本申请实施例涉及数据管理,特别涉及一种分布式锁的管理方法、装置、计算机设备及存储介质。
背景技术:
1、当前软件系统中,由于对吞吐量、容灾等能力的要求越来越高,分布式的系统架构已是主流,分布式锁是分布式系统中不同节点间保障共享资源数据安全的一种方式。
2、然而,由于时间序列和实际执行序列在分布式环境并没有一致的因果关系,导致共享资源被错误的节点占用,或者,被错误的节点释放,从而引发各种系统问题,比如引发数据的一致性问题,进而造成数据安全问题。
技术实现思路
1、本申请实施例提供了一种分布式锁的管理方法、装置、计算机设备及存储介质,可以降低同时有两个客户端获取到同一个分布式锁造成的对共享资源同时操作引发安全问题的可能性,从而保障数据的一致性和安全性。该技术方案如下:
2、一方面,提供了一种分布式锁的管理方法,所述方法包括:
3、在目标客户端获得目标分布式锁时,将所述目标分布式锁存放在锁管理端的第一区域中进行管理;所述第一区域中的分布式锁具有第一过期时长;
4、在所述目标客户端获得所述目标分布式锁的时长超过所述目标分布式锁对应的第一过期时长,且确定所述目标客户端处于失联状态时,通过判决模型对所述目标客户端对所述目标分布式锁的占用能力进行预测,获得预测结果;
5、在所述预测结果指示所述目标客户端具有对所述目标分布式锁的占用能力的情况下,将所述目标分布式锁存放到所述锁管理端的第二区域中进行管理;所述第二区域中的分布式锁的具有第二过期时长以及申请次数阈值;同一分布式锁的第二过期时长大于第一过期时长。
6、另一方面,提供了一种分布式锁的管理装置,所述装置包括:
7、第一管理模块,用于在目标客户端获得目标分布式锁时,将所述目标分布式锁存放在锁管理端的第一区域中进行管理;所述第一区域中的分布式锁具有第一过期时长;
8、预测模块,用于在所述目标客户端获得所述目标分布式锁的时长超过所述目标分布式锁对应的第一过期时长,且确定所述目标客户端处于失联状态时,通过判决模型对所述目标客户端对所述目标分布式锁的占用能力进行预测,获得预测结果;
9、第二管理模块,用于在所述预测结果指示所述目标客户端具有对所述目标分布式锁的占用能力的情况下,将所述目标分布式锁存放到所述锁管理端的第二区域中进行管理;所述第二区域中的分布式锁的具有第二过期时长以及申请次数阈值;同一分布式锁的第二过期时长大于第一过期时长。
10、在一种可能的实现方式中,所述装置还包括:
11、释放模块,用于在将所述目标分布式锁存放到所述管理端的第二区域中进行管理之后,在接收到的对所述目标分布式锁的申请次数大于所述目标分布式锁对应的申请次数阈值时,释放所述目标分布式锁。
12、在一种可能的实现方式中,所述预测模块,包括:
13、数据集获取子模块,用于获取所述目标客户端的特征数据集;
14、预测子模块,用于将所述目标客户端的特征数据集输入到所述判决模型中,获得所述预测结果;所述预测结果用于指示所述目标客户端具有对所述目标分布式锁的占用能力,或者,所述预测结果用于指示所述目标客户端不具有对所述目标分布式锁的占用能力。
15、在一种可能的实现方式中,所述释放模块还用于,在所述预测结果用于指示所述目标客户端不具有对所述目标分布式锁的占用能力的情况下,释放所述目标分布式锁。
16、在一种可能的实现方式中,所述装置还包括:
17、心跳检测模块,用于在所述目标客户端获得所述目标分布式锁的时长超过所述目标分布式锁对应的第一过期时长时,对所述目标客户端进行心跳检测;
18、状态确定模块,用于在对所述目标客户端的心跳检测失活,或者,未接收到所述目标客户端的续期响应时,确定所述目标客户端处于所述失联状态。
19、在一种可能的实现方式中,所述装置还包括:
20、样本集获取模块,用于获取训练样本集,所述训练样本集中包含各个样本客户端的特征数据集以及各个样本客户端的状态标识,所述状态标识用于指示样本客户端可恢复响应或者不可恢复响应;所述训练样本集中各个样本客户端的初始化样本权重相同;
21、训练模块,用于基于所述训练样本集对t个弱分类器依次进行训练,获得t个弱分类器,t为正整数;每个弱分类器具有各自的权重,弱分类器的权重与预测结果的错误率负相关;
22、模型获取模块,用于基于t个弱分类器以及每个弱分类器各自的权重,获得所述判决模型。
23、在一种可能的实现方式中,所述训练模块,用于基于第t个弱分类器输出的对各个样本客户端的预测状态与各个样本客户端的状态标识对第t个弱分类器进行参数更新,得到第t个弱分类器;第t个弱分类器是t个弱分类器中的任意一个;
24、其中,在对第t个弱分类器进行训练时,基于第t个弱分类器的预测结果的错误率计算第t个弱分类器的权重,并基于第t个弱分类器的预测结果更新各个样本客户端的样本权重。
25、另一方面,提供了一种计算机设备,所述计算机设备包含处理器和存储器,所述存储器存储有至少一条计算机程序,所述至少一条计算机程序由所述处理器加载并执行以实现上述的分布式锁的管理方法。
26、另一方面,提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有至少一条计算机程序,所述计算机程序由处理器加载并执行以实现上述的分布式锁的管理方法。
27、另一方面,提供了一种计算机程序产品,所述计算机程序产品包括至少一条计算机程序,所述计算机程序由处理器加载并执行以实现上述各种可选实现方式中提供的分布式锁的管理方法。
28、本申请提供的技术方案可以包括以下有益效果:
29、本申请实施例提供的分布式锁的管理方法,通过设置对分布式锁的不同管理区域,在不同情况下对分布式锁进行不同的管理,其中包含第一区域以及第二区域,在第一区域中,分布式锁被目标客户端占用后,带有第一过期时长,当分布式锁到期后,若目标客户端失联,且经过预测确定目标客户端还能恢复响应并释放锁,则将该分布式锁转入第二区域管理,在第二区域中,该分布式锁具有更长的第二过期时长,但有申请次数阈值的限制;通过上述设置可以在目标客户端出现失联时,基于目标客户端是否可恢复响应确定是否让目标客户端继续占用目标分布式锁,从而降低了同时有两个客户端获取到同一个分布式锁造成的对共享资源同时操作引发安全问题的可能性,从而保障数据的一致性和安全性。
30、应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本申请。
1.一种分布式锁的管理方法,其特征在于,所述方法包括:
2.根据权利要求1所述的方法,其特征在于,在将所述目标分布式锁存放到所述管理端的第二区域中进行管理之后,所述方法还包括:
3.根据权利要求1或2所述的方法,其特征在于,所述通过判决模型对所述目标客户端对所述目标分布式锁的占用能力进行预测,获得预测结果,包括:
4.根据权利要求3所述的方法,其特征在于,所述方法还包括:
5.根据权利要求1所述的方法,其特征在于,所述方法还包括:
6.根据权利要求3所述的方法,其特征在于,所述方法还包括:
7.根据权利要求6所述的方法,其特征在于,所述基于所述训练样本集对t个弱分类器依次进行训练,获得t个弱分类器,包括:
8.一种分布式锁的管理装置,其特征在于,所述装置包括:
9.一种计算机设备,其特征在于,所述计算机设备包括处理器和存储器,所述存储器存储有至少一条计算机程序,所述至少一条计算机程序由所述处理器加载并执行以实现如权利要求1至7任一所述的分布式锁的管理方法。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有至少一条计算机程序,所述计算机程序由处理器加载并执行以实现如权利要求1至7任一所述的分布式锁的管理方法。