一种分布式锁的实现方法、装置、设备及存储介质制造方法及图纸

技术编号:33652877 阅读:19 留言:0更新日期:2022-06-02 20:31
本申请公开了一种分布式锁的实现方法、装置、设备及存储介质,该方法包括:在AI资源管理平台的数据库中建立保存锁信息的表;表中包含服务名字段;在表的服务名字段上创建唯一索引;查询表中是否存在待访问的服务对应插入的数据;若否,则直接加锁;若是,则等待释放锁。上述方法完全利用数据库现有能力,对AI资源管理平台的服务中执行流程进行了限制,简单实现在服务之间的访问共用资源时互斥,保证了业务流程的正常顺序执行,避免业务的执行混乱,并且增强了系统的灵活性,有利于提高服务的稳定性,从而保证了业务系统的正常使用。从而保证了业务系统的正常使用。从而保证了业务系统的正常使用。

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


[0001]本专利技术涉及人工智能
,特别是涉及一种分布式锁的实现方法、装置、设备及存储介质。

技术介绍

[0002]对于人工智能(Artificial Intelligence,AI)场景的训练任务来说,服务之间经常会同时访问同一个资源,所以服务之间存在竞争性。由于AI场景业务的并发量大,服务之间的竞争性非常激烈。如果处理不当,就会造成业务流程的混乱,使业务不能正常使用,给用户带来非常不好的体验。
[0003]因此,如何让服务之间的访问共用资源的时候进行互斥,是本领域技术人员亟待解决的技术问题。

技术实现思路

[0004]有鉴于此,本专利技术的目的在于提供一种分布式锁的实现方法、装置、设备及存储介质,可以在服务之间的访问共用资源时互斥,保证业务流程的正常顺序执行,避免业务的混乱。其具体方案如下:
[0005]一种分布式锁的实现方法,包括:
[0006]在AI资源管理平台的数据库中建立保存锁信息的表;所述表中包含服务名字段;
[0007]在所述表的服务名字段上创建唯一索引;
[0008]查询所述表中是否存在待访问的服务对应插入的数据;
[0009]若否,则直接加锁;若是,则等待释放锁。
[0010]优选地,在本专利技术实施例提供的上述分布式锁的实现方法中,所述直接加锁,包括:
[0011]利用服务名直接向所述表中插入所述数据,在插入后获取锁。
[0012]优选地,在本专利技术实施例提供的上述分布式锁的实现方法中,在所述直接加锁之后,还包括:
[0013]获取所述服务的访问权限;
[0014]删除对应的所述数据,释放锁。
[0015]优选地,在本专利技术实施例提供的上述分布式锁的实现方法中,在所述等待释放锁之后,还包括:
[0016]在所述数据执行删除操作后,执行加锁。
[0017]优选地,在本专利技术实施例提供的上述分布式锁的实现方法中,在所述建立保存锁信息的表之前,还包括:
[0018]检验配置文件,并安装AI资源管理平台的工作环境。
[0019]优选地,在本专利技术实施例提供的上述分布式锁的实现方法中,在所述直接加锁和所述等待释放锁的同时,还包括:
[0020]通过JAVA操作所述数据库。
[0021]优选地,在本专利技术实施例提供的上述分布式锁的实现方法中,所述数据库为mariadb。
[0022]本专利技术实施例还提供了一种分布式锁的实现装置,包括:
[0023]表建立模块,用于在AI资源管理平台的数据库中建立保存锁信息的表;所述表中包含服务名字段;
[0024]索引创建模块,用于在所述表的服务名字段上创建唯一索引;
[0025]数据查询模块,用于查询所述表中是否存在待访问的服务对应插入的数据;
[0026]分布式锁处理模块,用于若所述表中不存在待访问的服务对应插入的数据,则直接加锁;若所述表中存在待访问的服务对应插入的数据,则等待释放锁。
[0027]本专利技术实施例还提供了一种分布式锁的实现设备,包括处理器和存储器,其中,所述处理器执行所述存储器中存储的计算机程序时实现如本专利技术实施例提供的上述分布式锁的实现方法。
[0028]本专利技术实施例还提供了一种计算机可读存储介质,用于存储计算机程序,其中,所述计算机程序被处理器执行时实现如本专利技术实施例提供的上述分布式锁的实现方法。
[0029]从上述技术方案可以看出,本专利技术所提供的一种分布式锁的实现方法,包括:在AI资源管理平台的数据库中建立保存锁信息的表;表中包含服务名字段;在表的服务名字段上创建唯一索引;查询表中是否存在待访问的服务对应插入的数据;若否,则直接加锁;若是,则等待释放锁。
[0030]本专利技术提供的上述分布式锁的实现方法,完全利用数据库现有能力,对AI资源管理平台的服务中执行流程进行了限制,简单实现在服务之间的访问共用资源时互斥,保证了业务流程的正常顺序执行,避免业务的执行混乱,并且增强了系统的灵活性,有利于提高服务的稳定性,从而保证了业务系统的正常使用。
[0031]此外,本专利技术还针对分布式锁的实现方法提供了相应的装置、设备及计算机可读存储介质,进一步使得上述方法更具有实用性,该装置、设备及计算机可读存储介质具有相应的优点。
附图说明
[0032]为了更清楚地说明本专利技术实施例或相关技术中的技术方案,下面将对实施例或相关技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本专利技术的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
[0033]图1为本专利技术实施例提供的分布式锁的实现方法的流程图;
[0034]图2为本专利技术实施例提供的分布式锁的实现装置的结构示意图。
具体实施方式
[0035]在AI业务中,由于微服务是基于JAVA语言实现的,大多的通信都是采用HTTP通信,有些资源是被限制的,同时只能被一个服务使用。在访问这些被限制的服务或者资源之前,要确保这个资源不被其他服务使用,基于此,本专利技术提供了一种分布式锁的实现方法。
[0036]下面将结合本专利技术实施例中的附图,对本专利技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本专利技术一部分实施例,而不是全部的实施例。基于本专利技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本专利技术保护的范围。
[0037]本专利技术提供一种分布式锁的实现方法,如图1所示,包括以下步骤:
[0038]S101、在AI资源管理平台的数据库中建立保存锁信息的表;表中包含服务名字段;
[0039]S102、在表的服务名字段上创建唯一索引;
[0040]需要说明的是,唯一索引可以保证数据记录的唯一性,目的是为了避免数据出现重复。唯一索引可以是如下范例:
[0041]CREATE TABLE`lock_tb`(
[0042]`id`int(8)auto_increment NOT NULL,
[0043]`lockname`varchar(5)NOT NULL DEFAULT”,
[0044]PRIMARY KEY(`id`),
[0045]UNIQUE KEY`lockname_key`(`lockname`)
[0046])
[0047]S103、查询表中是否存在待访问的服务对应插入的数据;
[0048]在本专利技术中,要获得某个服务的访问权限时候,查询此表有没有数据,此表中对某个服务的权限控制,始终只有一条数据。
[0049]若否,则执行步骤S104;若是,则执行步骤S105;
[0050]S104、直接加锁;
[0051]S105、等待释放锁。
[0052]在本专利技术实施例提供的上述分布式锁的实现方法中,完全利用数本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种分布式锁的实现方法,其特征在于,包括:在AI资源管理平台的数据库中建立保存锁信息的表;所述表中包含服务名字段;在所述表的服务名字段上创建唯一索引;查询所述表中是否存在待访问的服务对应插入的数据;若否,则直接加锁;若是,则等待释放锁。2.根据权利要求1所述的分布式锁的实现方法,其特征在于,所述直接加锁,包括:利用服务名直接向所述表中插入所述数据,在插入后获取锁。3.根据权利要求2所述的分布式锁的实现方法,其特征在于,在所述直接加锁之后,还包括:获取所述服务的访问权限;删除对应的所述数据,释放锁。4.根据权利要求3所述的分布式锁的实现方法,其特征在于,在所述等待释放锁之后,还包括:在所述数据执行删除操作后,执行加锁。5.根据权利要求4所述的分布式锁的实现方法,其特征在于,在所述建立保存锁信息的表之前,还包括:检验配置文件,并安装AI资源管理平台的工作环境。6.根据权利要求5所述的分布式锁的实现方法,其特征在于,在所述直接加锁和所述等...

【专利技术属性】
技术研发人员:徐如庆
申请(专利权)人:苏州浪潮智能科技有限公司
类型:发明
国别省市:

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

1