CN105631023A - 分布式锁服务的方法和装置 - Google Patents
分布式锁服务的方法和装置 Download PDFInfo
- Publication number
- CN105631023A CN105631023A CN201511019966.0A CN201511019966A CN105631023A CN 105631023 A CN105631023 A CN 105631023A CN 201511019966 A CN201511019966 A CN 201511019966A CN 105631023 A CN105631023 A CN 105631023A
- Authority
- CN
- China
- Prior art keywords
- lock
- distribution formula
- target
- application
- dlms
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/17—Details of further file system functions
- G06F16/176—Support for shared access to files; File sharing support
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/547—Remote procedure calls [RPC]; Web services
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/54—Indexing scheme relating to G06F9/54
- G06F2209/541—Client-server
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明实施例提供一种分布式锁服务方法和装置。该方法包括,接收数据操作请求;确定与该数据操作请求对应的目标互联网协议IP盘;从该目标IP盘中的锁管理服务端DLMS获取与该数据操作请求对应的目标分布式锁;从该目标IP盘中获取目标数据,以便于在该目标分布式锁的租约期限内对该目标数据进行处理。本发明实施例能减少物理部署,降低分布式系统的复杂度。
Description
技术领域
本发明实施例涉及分布式系统领域,并且更具体地,涉及一种分布式锁服务的方法和装置。
背景技术
在分布式系统中,不同的主机可以共享一个或者一组资源,为了防止不同的主机同时访问相同的共享资源时发生冲突或者干扰,分布式系统中常常采用分布式锁来实现对不同的主机访问共享资源的控制。具体来说,当一个主机要访问共享资源时需要先获得与要访问的资源对应的分布式锁,在获取相应的分布式锁之后才能访问相应的资源。
分布式锁服务主要是通过分布式锁管理服务端(DistributeLockManageServer,DLMS)和分布式锁管理客户端(DistributeLockManageClient,DLMC)来实现分布式锁服务的,DLMS拥有一定数量的分布式锁,应用可以通过DLMC向DLMS申请分布式锁,一般来说DLMC可以与应用分布在相同的分布式节点上,而DLMS一般分布在单独的分布式节点上。
为了提供分布式锁服务,现有技术将DLMS设置在分布式系统中的不同分布式节点上,应用在接收到数据操作请求之后通过所在节点的DLMC向DLMS申请相应的分布式锁,在获取了分布式锁之后,再从系统存储数据的节点获取与数据操作请求对应的待处理的数据,然后对待处理的数据进行相应的操作处理。
上述现有技术是在单独的分布式节点上部署DLMS,物理部署较多。此外,应用在对目标数据进行处理时,需要先确定与目标数据对应的分布式锁所在的节点,并从该节点的DLMS获取分布式锁,接下来再确定目标数据所在的节点,并从中获取目标数据,最后再对目标数据进行处理。也就是说,如果要完成对数据的处理,需要分别确定分布式锁和目标数据所在的节点,然后再分别获取分布式锁和目标数据,过程比较繁琐。
发明内容
本申请提供了一种分布式锁服务的方法和装置,以减少物理部署。
第一方面,提供一种分布式锁服务的方法,包括:接收数据操作请求;确定与所述数据操作请求对应的目标互联网协议IP盘;从所述目标IP盘中的锁管理服务端DLMS获取与所述数据操作请求对应的目标分布式锁;从所述目标IP盘中获取目标数据,以便于在所述目标分布式锁的租约期限内对所述目标数据进行处理。
现有技术是将DLMS在部署在分布式系统中的一些单独的分布式节点上,如果要实现对数据的操作处理必须要先确定与目标数据对应的分布式锁所在的节点,并从该节点的DLMS获取分布式锁,接下来再确定目标数据所在的节点,并从中获取目标数据,最后再对目标数据进行处理。也就是说,如果要完成对数据的处理,需要分别确定分布式锁和目标数据所在的节点,然后再分别获取分布式锁和目标数据,过程比较繁琐。而在本申请的方案中,通过将DLMS直接部署在IP盘中,而不用再设置单独的分布式节点来部署DLMS,减少了物理部署,降低了系统的复杂度,使得应用可以从IP盘中既能获取分布式锁又能获取要处理的数据,而不用像现有技术那样要分别从不同的分布式节点获取分布式锁和数据,简化了服务的流程。
结合第一方面,在第一方面的第一种实现方式中,所述数据操作请求携带所述目标数据的目标键值,所述确定与所述数据操作请求对应的目标IP盘,包括:根据所述目标键值查询第一映射关系表,确定与所述目标键值对应的目标IP盘,其中,所述第一映射关系表指示了IP盘与键值的映射关系;所述从所述目标IP盘中的锁管理服务端DLMS获取与所述数据操作请求对应的目标分布式锁,包括:根据所述目标键值查询所述DLMS中的第二映射关系表,确定与所述目标键值对应的目标分布式锁,其中,所述第二映射关系表指示了分布式锁与键值的映射关系。
结合第一方面或者第一方面的第一种实现方式,在第一方面的第二种实现方式中,从所述DLMS获取所述目标分布式锁之后,将所述目标分布式锁保存在本地缓存中。
结合第一方面以及第一方面的第一种至第二种实现方式中的任一种,在第一方面的第三种实现方式中,在确定与所述数据操作请求对应的目标IP盘之前,所述方法还包括:从本地缓存中获取所述目标分布式锁。
第二方面,提供一种分布式锁服务的方法,包括:锁管理服务端DLMS接收应用APP的锁服务请求,所述DLMS位于互联网协议IP盘中;所述DLMS确定与所述锁服务请求对应的目标分布式锁;所述DLMS将所述目标分布式锁分配给所述APP,以便于所述APP从所述目标IP盘获取目标数据后对所述目标数据进行处理。
现有技术是将DLMS在部署在分布式系统中的一些单独的分布式节点上,如果要实现对数据的操作处理必须要先确定与目标数据对应的分布式锁所在的节点,并从该节点的DLMS获取分布式锁,接下来再确定目标数据所在的节点,并从中获取目标数据,最后再对目标数据进行处理。也就是说,如果要完成对数据的处理,需要分别确定分布式锁和目标数据所在的节点,然后再分别获取分布式锁和目标数据,过程比较繁琐。而在本申请的方案中,通过将DLMS直接部署在IP盘中,而不用再设置单独的分布式节点来部署DLMS,减少了物理部署,降低了系统的复杂度,使得应用可以从IP盘中既能获取分布式锁又能获取要处理的数据,而不用像现有技术那样要分别从不同的分布式节点获取分布式锁和数据,简化了服务的流程。
结合第二方面,在第二方面的第一种实现方式中,所述锁服务请求携带所述目标数据的目标键值,所述DLMS确定与所述锁服务请求对应的目标分布式锁,包括:所述DLMS根据所述目标键值查询第一映射关系表,确定与所述目标键值对应的目标分布式锁,其中,所述第一映射关系表指示了分布式锁与键值的映射关系。
结合第二方面或者第二方面的第一种实现方式,在第二方面的第二种实现方式中,所述DLMS将所述目标分布式锁分配给所述APP之前,所述方法还包括:如果所述DLMS中的所述目标分布式锁被其它应用获取,所述DLMS向所述其它应用召回所述目标分布式锁。
结合第二方面以及第二方面的第一种至第二种实现方式中的任一种,在第二方面的第三种实现方式中,所述DLMS向所述其它应用召回所述目标分布式锁,包括:所述DLMS确定所述目标分布式锁在所述其它应用中是否处于锁定状态;如果所述DLMS确定所述目标分布式锁在所述其它应用中处于锁定状态,所述DLMS在所述目标分布式锁的租约期满之后向所述其它应用召回所述目标分布式锁;如果所述DLMS确定所述目标分布式锁在所述其它应用中处于空闲状态,所述DLMS向所述其它应用召回所述目标分布式锁,并向所述其它应用发送指示信息,以便于所述其它应用将保存的所述目标分布式锁的缓存信息删除。
第三方面,提供一种应用节点,所述应用节点包括用于执行第一方面的方法的模块。
第四方面,提供一种分布式锁管理装置,所述分布式锁管理装置包括用于执行第二方面的方法的模块。
在某些实现方式中,分布式节点中的应用或者设备接收所述数据操作请求,该应用或者设备所在的节点包含分布式锁管理客户端DLMC,所述DLMC用于保存所述目标分布式锁。
在某些实现方式中,应用或者设备从所在节点的DLMC中获取目标分布式锁。
本申请的方案中,通过将DLMS直接部署在IP盘中,而不用再设置单独的分布式节点来部署DLMS,减少了物理部署,降低了系统的复杂度,使得应用可以从IP盘中既能获取分布式锁又能获取要处理的数据,而不用像现有技术那样要分别从不同的分布式节点获取分布式锁和数据,简化了服务的流程。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对本发明实施例中所需要使用的附图作简单地介绍,显而易见地,下面所描述的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例的分布式锁服务方法的示意性流程图。
图2是本发明实施例的分布式锁服务方法的示意性流程图
图3是本发明实施例的应用节点的示意性框图。
图4是本发明实施例的分布式锁管理装置的示意性框图。
图5是本发明实施例的应用节点的示意性框图。
图6是本发明实施例的分布式锁管理装置的示意性框图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
图1示出了本发明实施例的分布式锁服务方法的示意性流程图。应理解,该方法应用在分布式系统中,该方法可以由分布式系统中应用节点或者设备等执行。该方法包括:
110、接收数据操作请求。
上述数据操作可以是数据修改操作,如写操作,删除操作等。应用或者设备接收到数据操作请求后,需要从系统的共享数据获取数据后才能对数据进行操作,在包含IP盘的分布式系统中,应用或者设备可以从IP盘中获取要操作的数据,但是为了防止不同的应用同时获取数据或者对数据进行操作,应用需要先获取与该数据操作请求对应的分布式锁。
120、确定与该数据操作请求对应的目标互联网协议IP盘。
130、从该目标IP盘中的锁管理服务端DLMS获取与该数据操作请求对应的目标分布式锁。
应理解,在含有IP盘的分布式系统中,IP盘既可以存储数据又可以保存与存储的数据对应的分布式锁。具体来说,IP盘中可以设置有DLMS,由DLMS来管理相应的分布式锁,应理解,DLMS管理的分布式锁与IP盘中存储的数据可以是对应的,也就是说对IP盘中的相应数据进行操作的相关分布式锁就保存在该IP盘中的DLMS中,这样,应用就可以从IP盘中既能获取分布式锁又能获取要处理的数据。具体而言,IP盘中存储的数据与IP盘中DLMS中的分布式锁是互相匹配的,例如,IP盘中存储了10个数据,那么IP盘中的DLMS中就会保存获取或者操作这10个数据的分布式锁。这样,在同一个IP盘里不仅可以找到目标分布式锁,也可以找到目标数据。这样就减少了数据流程
还应理解,当该分布式锁服务的方法的执行主体是应用时,应用可以通过所在节点的分布式锁管理客户端DLMC向目标IP盘中的DLMS申请目标分布式锁。
140、从该目标IP盘中获取目标数据,以便于在该目标分布式锁的租约期限内对该目标数据进行处理。
本发明实施例中,通过将DLMS直接部署在IP盘中,而不用再设置单独的分布式节点来部署DLMS,减少了物理部署,降低了系统的复杂度,使得应用可以从IP盘中既能获取分布式锁又能获取要处理的数据,而不用像现有技术那样要分别从不同的分布式节点获取分布式锁和数据,简化了服务的流程。
可选地,作为一个实施例,当该方法的执行主体为应用时,该应用可以保存有第一映射关系表,该第一映射关系表保存有键值与IP盘的映射关系,当应用从数据操作请求中获取目标键值后,就可以根据目标键查询第一映射关系表,从而确定与目标键值对应的目标IP盘。在确定了目标IP盘之后,就可以根据目标键值查询DLMS中的第二映射关系表,确定与所述目标键值对应的目标分布式锁,上述第二映射关系表保存了分布式锁与键值的映射关系。
可选地,作为一个实施例,当该分布式锁服务的方法的执行主体是应用时,应用可以先向所在节点的DLMC申请目标分布式锁,如果DLMC中保存有目标分布式锁,那么应用就可以直接从DLMC的本地缓存中获取目标分布式锁。
可选地,作为一个实施例,如果应用所在节点的DLMC中不存在上述目标分布式锁,那么应用从DLMS获取目标分布式锁之后,可以将该目标分布式锁保存在DLMC的本地缓存中,以便于应用下次申请目标分布式锁时可以直接从DLMC的本地缓存中获取。
上述IP盘可以利用键值(key-value)存储技术来存储数据,也就是说IP盘中可以保存有键值与数据的第三映射关系表,根据数据操作请求携带的目标键值并查询该第三映射关系表就可以获取要操作的目标数据。
以上结合图1从应用或者设备的角度对本发明实施例的分布式锁服务的方法进行了详细的描述,下面从DLMS的角度对本发明实施例的分布式锁服务的方法进行详细的描述。
DLMS为应用或者设备提供锁服务的流程如下:锁管理服务端DLMS接收应用APP的锁服务请求,该DLMS位于互联网协议IP盘中;该DLMS确定与该锁服务请求对应的目标分布式锁;该DLMS将该目标分布式锁分配给该APP,以便于该APP从该目标IP盘获取目标数据后对该目标数据进行处理。
本发明实施例中,通过将DLMS直接部署在IP盘中,而不用再设置单独的分布式节点来部署DLMS,减少了物理部署,降低了系统的复杂度,使得应用可以从IP盘中既能获取分布式锁又能获取要处理的数据,而不用像现有技术那样要分别从不同的分布式节点获取分布式锁和数据,简化了服务的流程。
下面结合图2对本发明实施例的分布式锁服务方法的整体过程进行描述。
201、应用接收数据操作请求,该数据操作请求中携带有要处理的目标数据的目标键值。
应理解,应用可以通过其数据分发层接收数据操作请求,数据分发层可以对数据操作请求进行解析,获得其中携带的目标键值。
202、应用向所在节点的DLMC申请分布式锁,如果DLMC的本地缓存中保存有与目标键值对应的目标分布式锁,那么就可以直接从DLMC的本地缓存中获取目标分布式锁,并且应用在获取目标分布式锁之后向相应IP盘中的DLMS更新目标分布式锁的租约;
203、如果DLMC的本地缓存中不存在目标分布式锁,那么应用就根据键值与IP盘的映射关系确定与目标键值对应的目标IP盘;
204、应用向目标IP盘中的DLMS发送锁服务请求,以申请目标分布式锁;
205、DLMS在接收到锁服务请求之后,根据其保存的键值与分布式锁的映射关系,确定DLMS中是否存在目标分布式锁;
206、如果DLMC中存在目标分布式锁,那么DLMS就向应用授予目标分布式锁以及该目标分布式锁的租约;
207、如果DLMC中不存在目标分布式锁,根据键值与分布式锁的映射关系确定目标分布式锁是否被其它应用节点申请;
208、如果目标分布式锁被其它应用节点申请,且该目标分布式锁在应用节点中处于锁定状态,那么DLMS等待目标分布式锁的租约到期后召回该目标分布式锁;
209、如果目标分布式锁被其它应用节点申请,且该目标分布式锁在应用节点中处于空闲状态,那么DLMS不用等待目标分布式锁的租约到期就召回该目标分布式锁;
210、DLMS召回目标分布式锁之后,向应用授予目标分布式锁以及该目标分布式锁的租约;
211、应用获取到目标分布式锁以及目标分布式锁的租约后将其保存在所在节点的DLMC的本地缓存中。
应理解,应用在获取分布式锁和相应的租约信息后,会将分布式锁以及租约信息保存在所在节点的DLMC的本地缓存中,在租约期限内,该应用可以从IP盘中获取相应的数据并对该数据进行相应的处理。如果对数据处理完之后,分布式锁的租约还没有到期,这时分布式锁在应用中处于空闲状态,这时可以根据DLMS的指令将DLMC中缓存的该分布式锁的信息删除,以便于DLMS提前召回该分布式锁,分配给其它应用节点使用。如果分布式锁的租约期限已到,那么DLMS会主动从应用中召回该分布式锁,同时DLMC也会将本地缓存中保存的分布式锁以及分布式锁的租约信息删除。也就是说,应用获取的分布式锁都是有时间限制的,每个应用获取分布式锁的时间都是有限的,当达到预定时间之后,DLMS会收回相应的分布式锁,以便于其它的应用在需要时获取分布式锁,进行其它的相关操作。
上文结合图1和图2,详细的描述了根据本发明实施例的分布式锁服务的方法,下面将结合图3至图6描述本发明实施例的应用节点以及分布式锁管理装置。应理解,图3至图6描述的应用节点以及分布式锁管理装置能够实现图1和图2中描述的分布式锁服务的方法的各个步骤,为了简洁,适当省略重复的描述。
图3是本发明实施例的应用节点的示意性框图。该应用节点300包括:
接收模块310,用于接收数据操作请求;
确定模块320,确定与所述数据操作请求对应的目标互联网协议IP盘;
执行模块330,用于从所述确定模块320确定的所述目标IP盘中的锁管理服务端DLMS获取与所述数据操作请求对应的目标分布式锁;
所述执行模块330还用于从所述目标IP盘中获取目标数据,并在所述目标分布式锁的租约期限内对所述目标数据进行处理。
本发明实施例中,通过将DLMS直接部署在IP盘中,而不用再设置单独的分布式节点来部署DLMS,减少了物理部署,降低了系统的复杂度,使得应用可以从IP盘中既能获取分布式锁又能获取要处理的数据,而不用像现有技术那样要分别从不同的分布式节点获取分布式锁和数据,简化了服务的流程。
可选地,作为一个实施例,所述确定模块320具体用于:根据所述目标键值查询第一映射关系表,确定与所述目标键值对应的目标IP盘,其中,所述第一映射关系表指示了IP盘与键值的映射关系;根据所述目标键值查询所述DLMS中的第二映射关系表,确定与所述目标键值对应的目标分布式锁,其中,所述第二映射关系表指示了分布式锁与键值的映射关系。
可选地,作为一个实施例,所述应用节点还包括:存储模块340,用于保存从所述DLMS获取的所述目标分布式锁。
可选地,作为一个实施例,所述分布式节点还包括:获取模块350,用于从本地缓存中获取所述目标分布式锁。
图4是本发明实施例的分布式锁管理装置的示意性框图。该分布式锁管理装置400包括:
接收模块410,用于接收应用APP的锁服务请求;
确定模块420,用于确定与所述锁服务请求对应的目标分布式锁;
执行模块430,用于将所述目标分布式锁分配给所述APP,以便于所述APP从所述目标IP盘获取目标数据后对所述目标数据进行处理。
本发明实施例中,通过将分布式锁管理装置直接部署在IP盘中,而不用再设置单独的分布式节点来部署分布式锁管理装置,减少了物理部署,降低了系统的复杂度,使得应用可以从IP盘中既能获取分布式锁又能获取要处理的数据,而不用像现有技术那样要分别从不同的分布式节点获取分布式锁和数据,简化了服务的流程。
可选地,作为一个实施例,所述确定模块420具体用于:根据所述目标键值查询第一映射关系表,确定与所述目标键值对应的目标分布式锁,其中,所述第一映射关系表指示了分布式锁与键值的映射关系。
可选地,作为一个实施例,所述执行模块430还用于:如果所述分布式锁管理装置中的所述目标分布式锁被其它应用获取,向所述其它应用召回所述目标分布式锁。
可选地,作为一个实施例,所述执行模块430具体用于:确定所述目标分布式锁在所述其它应用中是否处于锁定状态;如果所述目标分布式锁在所述其它应用中处于锁定状态,在所述目标分布式锁的租约期满之后向所述其它应用召回所述目标分布式锁;如果目标分布式锁在所述其它应用中处于空闲状态,向所述其它应用召回所述目标分布式锁,并向所述其它应用发送指示信息,以便于所述其它应用将保存的所述目标分布式锁的缓存信息删除。
图5是本发明实施例的应用节点的示意性框图。该应用节点500包括:
存储器510,用于存储程序;
收发器520,用于接收数据操作请求;
处理器530,用于确定与所述数据操作请求对应的目标互联网协议IP盘;从所述确定模块确定的所述目标IP盘中的锁管理服务端DLMS获取与所述数据操作请求对应的目标分布式锁;从所述目标IP盘中获取目标数据,并在所述目标分布式锁的租约期限内对所述目标数据进行处理。
本发明实施例中,通过将DLMS直接部署在IP盘中,而不用再设置单独的分布式节点来部署DLMS,减少了物理部署,降低了系统的复杂度,使得应用可以从IP盘中既能获取分布式锁又能获取要处理的数据,而不用像现有技术那样要分别从不同的分布式节点获取分布式锁和数据,简化了服务的流程。
可选地,作为一个实施例,所述处理器530具体用于:根据所述目标键值查询第一映射关系表,确定与所述目标键值对应的目标IP盘,其中,所述第一映射关系表指示了IP盘与键值的映射关系;根据所述目标键值查询所述DLMS中的第二映射关系表,确定与所述目标键值对应的目标分布式锁,其中,所述第二映射关系表指示了分布式锁与键值的映射关系。
可选地,作为一个实施例,所述处理器530用于保存从所述DLMS获取的所述目标分布式锁。
可选地,作为一个实施例,所述处理器530用于从本地缓存中获取所述目标分布式锁。
图6是本发明实施例的分布式锁管理装置的示意性框图。该分布式锁管理装置600包括:
存储器610,用于存储程序;
收发器620,用于接收应用APP的锁服务请求;
处理器630,用于确定与所述锁服务请求对应的目标分布式锁;将所述目标分布式锁分配给所述APP,以便于所述APP从所述目标IP盘获取目标数据后对所述目标数据进行处理。
本发明实施例中,通过将分布式锁管理装置直接部署在IP盘中,而不用再设置单独的分布式节点来部署分布式锁管理装置,减少了物理部署,降低了系统的复杂度,使得应用可以从IP盘中既能获取分布式锁又能获取要处理的数据,而不用像现有技术那样要分别从不同的分布式节点获取分布式锁和数据,简化了服务的流程。
可选地,作为一个实施例,所述处理器630用于根据所述目标键值查询第一映射关系表,确定与所述目标键值对应的目标分布式锁,其中,所述第一映射关系表指示了分布式锁与键值的映射关系。
可选地,作为一个实施例,所述处理器630用于:如果所述分布式锁管理装置中的所述目标分布式锁被其它应用获取,向所述其它应用召回所述目标分布式锁。
可选地,作为一个实施例,所述处理器630具体用于:确定所述目标分布式锁在所述其它应用中是否处于锁定状态;如果所述目标分布式锁在所述其它应用中处于锁定状态,在所述目标分布式锁的租约期满之后向所述其它应用召回所述目标分布式锁;如果目标分布式锁在所述其它应用中处于空闲状态,向所述其它应用召回所述目标分布式锁,并向所述其它应用发送指示信息,以便于所述其它应用将保存的所述目标分布式锁的缓存信息删除。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-OnlyMemory)、随机存取存储器(RAM,RandomAccessMemory)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应所述以权利要求的保护范围为准。
Claims (16)
1.一种分布式锁服务的方法,其特征在于,包括:
接收数据操作请求;
确定与所述数据操作请求对应的目标互联网协议IP盘;
从所述目标IP盘中的锁管理服务端DLMS获取与所述数据操作请求对应的目标分布式锁;
从所述目标IP盘中获取目标数据,以便于在所述目标分布式锁的租约期限内对所述目标数据进行处理。
2.如权利要求1所述的方法,所述数据操作请求携带所述目标数据的目标键值,所述确定与所述数据操作请求对应的目标IP盘,包括:
根据所述目标键值查询第一映射关系表,确定与所述目标键值对应的目标IP盘,其中,所述第一映射关系表指示了IP盘与键值的映射关系;
所述从所述目标IP盘中的锁管理服务端DLMS获取与所述数据操作请求对应的目标分布式锁,包括:
根据所述目标键值查询所述DLMS中的第二映射关系表,确定与所述目标键值对应的目标分布式锁,其中,所述第二映射关系表指示了分布式锁与键值的映射关系。
3.如权利要求1或2所述的方法,其特征在于,从所述DLMS获取所述目标分布式锁之后,将所述目标分布式锁保存在本地缓存中。
4.如权利要求1-3中任一项所述的方法,在确定与所述数据操作请求对应的目标IP盘之前,所述方法还包括:
从本地缓存中获取所述目标分布式锁。
5.一种分布式锁服务的方法,其特征在于,包括:
锁管理服务端DLMS接收应用APP的锁服务请求,所述DLMS位于互联网协议IP盘中;
所述DLMS确定与所述锁服务请求对应的目标分布式锁;
所述DLMS将所述目标分布式锁分配给所述APP,以便于所述APP从所述目标IP盘获取目标数据后对所述目标数据进行处理。
6.如权利要求5所述的方法,所述锁服务请求携带所述目标数据的目标键值,所述DLMS确定与所述锁服务请求对应的目标分布式锁,包括:
所述DLMS根据所述目标键值查询第一映射关系表,确定与所述目标键值对应的目标分布式锁,其中,所述第一映射关系表指示了分布式锁与键值的映射关系。
7.如权利要求5或6所述的方法,其特征在于,所述DLMS将所述目标分布式锁分配给所述APP之前,所述方法还包括:
如果所述DLMS中的所述目标分布式锁被其它应用获取,所述DLMS向所述其它应用召回所述目标分布式锁。
8.如权利要求7所述的方法,其特征在于,所述DLMS向所述其它应用召回所述目标分布式锁,包括:
所述DLMS确定所述目标分布式锁在所述其它应用中是否处于锁定状态;
如果所述DLMS确定所述目标分布式锁在所述其它应用中处于锁定状态,所述DLMS在所述目标分布式锁的租约期满之后向所述其它应用召回所述目标分布式锁;
如果所述DLMS确定所述目标分布式锁在所述其它应用中处于空闲状态,所述DLMS向所述其它应用召回所述目标分布式锁,并向所述其它应用发送指示信息,以便于所述其它应用将保存的所述目标分布式锁的缓存信息删除。
9.一种应用节点,所述应用节点位于分布式系统中,其特征在于,包括:
接收模块,用于接收数据操作请求;
确定模块,确定与所述数据操作请求对应的目标互联网协议IP盘;
执行模块,用于从所述确定模块确定的所述目标IP盘中的锁管理服务端DLMS获取与所述数据操作请求对应的目标分布式锁;
所述执行模块还用于从所述目标IP盘中获取目标数据,并在所述目标分布式锁的租约期限内对所述目标数据进行处理。
10.如权利要求9所述的应用节点,其特征在于,所述确定模块具体用于:
根据所述目标键值查询第一映射关系表,确定与所述目标键值对应的目标IP盘,其中,所述第一映射关系表指示了IP盘与键值的映射关系;
根据所述目标键值查询所述DLMS中的第二映射关系表,确定与所述目标键值对应的目标分布式锁,其中,所述第二映射关系表指示了分布式锁与键值的映射关系。
11.如权利要求9或10所述的应用节点,其特征在于,所述应用节点还包括:
存储模块,用于保存从所述DLMS获取的所述目标分布式锁。
12.如权利要求9-11中任一项所述的应用节点,其特征在于,所述分布式节点还包括:
获取模块,用于从本地缓存中获取所述目标分布式锁。
13.一种分布式锁管理装置,所述分布式锁管理装置位于互联网协议IP盘中,其特征在于,包括:
接收模块,用于接收应用APP的锁服务请求;
确定模块,用于确定与所述锁服务请求对应的目标分布式锁;
执行模块,用于将所述目标分布式锁分配给所述APP,以便于所述APP从所述目标IP盘获取目标数据后对所述目标数据进行处理。
14.如权利要求13所述的分布式锁管理装置,其特征在于,所述确定模块具体用于:
根据所述目标键值查询第一映射关系表,确定与所述目标键值对应的目标分布式锁,其中,所述第一映射关系表指示了分布式锁与键值的映射关系。
15.如权利要求13或14所述的分布式锁管理装置,其特征在于,所述执行模块还用于:
如果所述分布式锁管理装置中的所述目标分布式锁被其它应用获取,向所述其它应用召回所述目标分布式锁。
16.如权利要求15所述的分布式锁管理装置,其特征在于,所述执行模块具体用于:
确定所述目标分布式锁在所述其它应用中是否处于锁定状态;
如果所述目标分布式锁在所述其它应用中处于锁定状态,在所述目标分布式锁的租约期满之后向所述其它应用召回所述目标分布式锁;
如果目标分布式锁在所述其它应用中处于空闲状态,向所述其它应用召回所述目标分布式锁,并向所述其它应用发送指示信息,以便于所述其它应用将保存的所述目标分布式锁的缓存信息删除。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910135858.1A CN109947724B (zh) | 2015-12-30 | 2015-12-30 | 分布式锁服务的方法和装置 |
CN201511019966.0A CN105631023B (zh) | 2015-12-30 | 2015-12-30 | 分布式锁服务的方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201511019966.0A CN105631023B (zh) | 2015-12-30 | 2015-12-30 | 分布式锁服务的方法和装置 |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910135858.1A Division CN109947724B (zh) | 2015-12-30 | 2015-12-30 | 分布式锁服务的方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105631023A true CN105631023A (zh) | 2016-06-01 |
CN105631023B CN105631023B (zh) | 2019-03-26 |
Family
ID=56045956
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201511019966.0A Active CN105631023B (zh) | 2015-12-30 | 2015-12-30 | 分布式锁服务的方法和装置 |
CN201910135858.1A Active CN109947724B (zh) | 2015-12-30 | 2015-12-30 | 分布式锁服务的方法和装置 |
Family Applications After (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910135858.1A Active CN109947724B (zh) | 2015-12-30 | 2015-12-30 | 分布式锁服务的方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (2) | CN105631023B (zh) |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106293954A (zh) * | 2016-08-08 | 2017-01-04 | 浪潮(北京)电子信息产业有限公司 | 一种基于分布式锁的高可用服务管理方法 |
CN106354565A (zh) * | 2016-09-21 | 2017-01-25 | 努比亚技术有限公司 | 一种分布式锁客户端及控制方法 |
CN106446037A (zh) * | 2016-08-31 | 2017-02-22 | 南威软件股份有限公司 | 一种基于分布式锁实现Redis与MYSQL数据一致性的方法 |
CN107360245A (zh) * | 2017-07-28 | 2017-11-17 | 郑州云海信息技术有限公司 | 一种基于租约锁机制的本地缓存方法及装置 |
CN107516048A (zh) * | 2016-06-16 | 2017-12-26 | 阿里巴巴集团控股有限公司 | 一种控制分布式文件系统中文件访问的方法与设备 |
CN107783842A (zh) * | 2016-08-31 | 2018-03-09 | 阿里巴巴集团控股有限公司 | 一种分布式锁实现方法、设备及存储装置 |
CN109240840A (zh) * | 2017-07-11 | 2019-01-18 | 阿里巴巴集团控股有限公司 | 集群系统的容灾方法、装置和机器可读介质 |
CN110430258A (zh) * | 2019-08-01 | 2019-11-08 | 哈尔滨哈工大大数据通用技术有限公司 | 一种分布式锁管理方法和装置 |
CN112099962A (zh) * | 2020-11-06 | 2020-12-18 | 成都新希望金融信息有限公司 | 分布式锁实现方法、装置和电子设备 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103973810A (zh) * | 2014-05-22 | 2014-08-06 | 华为技术有限公司 | 基于互联网协议ip盘的数据处理方法和装置 |
CN104077374A (zh) * | 2014-06-24 | 2014-10-01 | 华为技术有限公司 | 一种实现ip盘文件存储的方法及装置 |
CN104239418A (zh) * | 2014-08-19 | 2014-12-24 | 天津南大通用数据技术股份有限公司 | 支持分布式数据库的分布锁方法以及分布式数据库系统 |
US8996468B1 (en) * | 2009-04-17 | 2015-03-31 | Dell Software Inc. | Block status mapping system for reducing virtual machine backup storage |
CN104536834A (zh) * | 2014-11-26 | 2015-04-22 | 华为技术有限公司 | 一种授权锁权限的方法和分布式锁管理器 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101013381B (zh) * | 2007-01-26 | 2010-05-19 | 华中科技大学 | 基于对象存储系统的分布式锁 |
CN102298539A (zh) * | 2011-06-07 | 2011-12-28 | 华东师范大学 | 一种用于分布式并行处理的共享资源调度方法及系统 |
US9171019B1 (en) * | 2013-02-19 | 2015-10-27 | Amazon Technologies, Inc. | Distributed lock service with external lock information database |
CN103458036B (zh) * | 2013-09-03 | 2017-02-15 | 杭州华三通信技术有限公司 | 一种集群文件系统的访问装置和方法 |
-
2015
- 2015-12-30 CN CN201511019966.0A patent/CN105631023B/zh active Active
- 2015-12-30 CN CN201910135858.1A patent/CN109947724B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8996468B1 (en) * | 2009-04-17 | 2015-03-31 | Dell Software Inc. | Block status mapping system for reducing virtual machine backup storage |
CN103973810A (zh) * | 2014-05-22 | 2014-08-06 | 华为技术有限公司 | 基于互联网协议ip盘的数据处理方法和装置 |
CN104077374A (zh) * | 2014-06-24 | 2014-10-01 | 华为技术有限公司 | 一种实现ip盘文件存储的方法及装置 |
CN104239418A (zh) * | 2014-08-19 | 2014-12-24 | 天津南大通用数据技术股份有限公司 | 支持分布式数据库的分布锁方法以及分布式数据库系统 |
CN104536834A (zh) * | 2014-11-26 | 2015-04-22 | 华为技术有限公司 | 一种授权锁权限的方法和分布式锁管理器 |
Cited By (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107516048B (zh) * | 2016-06-16 | 2021-01-08 | 阿里巴巴集团控股有限公司 | 一种控制分布式文件系统中文件访问的方法与设备 |
CN107516048A (zh) * | 2016-06-16 | 2017-12-26 | 阿里巴巴集团控股有限公司 | 一种控制分布式文件系统中文件访问的方法与设备 |
CN106293954A (zh) * | 2016-08-08 | 2017-01-04 | 浪潮(北京)电子信息产业有限公司 | 一种基于分布式锁的高可用服务管理方法 |
CN106446037A (zh) * | 2016-08-31 | 2017-02-22 | 南威软件股份有限公司 | 一种基于分布式锁实现Redis与MYSQL数据一致性的方法 |
CN107783842A (zh) * | 2016-08-31 | 2018-03-09 | 阿里巴巴集团控股有限公司 | 一种分布式锁实现方法、设备及存储装置 |
CN107783842B (zh) * | 2016-08-31 | 2021-09-03 | 阿里巴巴集团控股有限公司 | 一种分布式锁实现方法、设备及存储装置 |
CN106354565A (zh) * | 2016-09-21 | 2017-01-25 | 努比亚技术有限公司 | 一种分布式锁客户端及控制方法 |
CN106354565B (zh) * | 2016-09-21 | 2019-08-20 | 努比亚技术有限公司 | 一种分布式锁客户端及控制方法 |
CN109240840A (zh) * | 2017-07-11 | 2019-01-18 | 阿里巴巴集团控股有限公司 | 集群系统的容灾方法、装置和机器可读介质 |
CN107360245A (zh) * | 2017-07-28 | 2017-11-17 | 郑州云海信息技术有限公司 | 一种基于租约锁机制的本地缓存方法及装置 |
CN107360245B (zh) * | 2017-07-28 | 2020-10-16 | 苏州浪潮智能科技有限公司 | 一种基于租约锁机制的本地缓存方法及装置 |
CN110430258A (zh) * | 2019-08-01 | 2019-11-08 | 哈尔滨哈工大大数据通用技术有限公司 | 一种分布式锁管理方法和装置 |
CN112099962A (zh) * | 2020-11-06 | 2020-12-18 | 成都新希望金融信息有限公司 | 分布式锁实现方法、装置和电子设备 |
CN112099962B (zh) * | 2020-11-06 | 2021-02-19 | 成都新希望金融信息有限公司 | 分布式锁实现方法、装置和电子设备 |
Also Published As
Publication number | Publication date |
---|---|
CN109947724B (zh) | 2023-08-04 |
CN109947724A (zh) | 2019-06-28 |
CN105631023B (zh) | 2019-03-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105631023A (zh) | 分布式锁服务的方法和装置 | |
CN104050201B (zh) | 用于多租户分布式环境中的数据管理的方法和设备 | |
CN107943594B (zh) | 数据获取方法和装置 | |
US10776285B2 (en) | Data write method, apparatus, and system | |
EP3220282B1 (en) | Method for managing lock in cluster, lock server and client | |
CN104954468A (zh) | 资源的分配方法及装置 | |
US8230414B1 (en) | Software distribution and cache management across client machines on a network | |
CN107911249B (zh) | 一种网络设备的命令行发送方法、装置和设备 | |
US10379834B2 (en) | Tenant allocation in multi-tenant software applications | |
US20160070475A1 (en) | Memory Management Method, Apparatus, and System | |
CN106817388B (zh) | 虚拟机、宿主机获取数据的方法、装置及访问数据的系统 | |
CN110941393A (zh) | 一种基于逻辑卷管理的lv供应方法、装置、设备及介质 | |
CN103294609B (zh) | 信息处理装置和存储器管理方法 | |
CN103812945A (zh) | 一种数据升级的方法和中心服务器 | |
US20160196079A1 (en) | Reusing storage blocks of a file system | |
CN109271193B (zh) | 一种数据处理方法、装置、设备及存储介质 | |
CN103607449A (zh) | 企业内网物理机访问云存储虚拟机的方法、设备和系统 | |
US8291406B2 (en) | Data imaging system and methods | |
US8433877B2 (en) | Storage scalability management | |
CN105144073A (zh) | 可移除存储设备身份和配置信息 | |
CN113259474B (zh) | 一种存储管理方法、系统、存储介质及设备 | |
CN111404978A (zh) | 一种数据存储方法及云存储系统 | |
US8850440B2 (en) | Managing the processing of processing requests in a data processing system comprising a plurality of processing environments | |
CN114827177A (zh) | 一种分布式文件系统的部署方法、装置及电子设备 | |
CN114257503A (zh) | 加速域名部署方法、服务器、系统和存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |