CN106572130A - 用于实现分布式锁管理的方法和设备 - Google Patents
用于实现分布式锁管理的方法和设备 Download PDFInfo
- Publication number
- CN106572130A CN106572130A CN201510648700.6A CN201510648700A CN106572130A CN 106572130 A CN106572130 A CN 106572130A CN 201510648700 A CN201510648700 A CN 201510648700A CN 106572130 A CN106572130 A CN 106572130A
- Authority
- CN
- China
- Prior art keywords
- lock
- information
- management information
- user equipment
- file
- 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/04—Network management architectures or arrangements
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Information Transfer Between Computers (AREA)
- Computer And Data Communications (AREA)
Abstract
本申请的目的是提供一种用于实现分布式锁管理的设备及方法基于公开化的管理信息,通过公开分布式锁拥有者以及有效期信息的管理信息,将原先寄托于用户设备与网络设备之间线程管理的分布式锁拥有者以及有效期信息公开化,从而使得业务层面可以高效,灵活定制符合自身业务场景的分布式锁服务。进一步地,通过各争抢分布式锁失败的用户设备进程主动订阅分布式锁文件,当分布式锁占有者进程主动释放分布式锁时,各用户设备进程可以及时得到变更通知进而重新争抢分布式锁,最终加快分布式锁拥有者的切换过程。
Description
技术领域
本申请涉及计算机领域,尤其涉及一种用于实现分布式锁管理的的技术。
背景技术
大规模云计算系统中各计算节点需要协调各自动作,或者互斥地访问一组共享资源,这些动作均需要依赖分布式锁服务来防止彼此干扰以保障分布式数据一致性。分布式锁在大规模分布式计算环境中被广泛使用,分布在不同计算节点上的用户设备进程通常依赖分布式锁来访问共享资源,以保证数据分布式一致性。
现有的实现技术下,对分布式锁的拥有者及有效期的管理,事实上是用户设备与网络设备之间建立的分布式锁管理,而分布式锁本身是与用户设备与网络设备之间建立的连接耦合在一起的,业务层面难以触及。这种对于业务层近似黑盒的分布式锁管理机制导致业务层面难以根据需要定制符合业务场景的分布式锁服务。
发明内容
本申请要解决的技术问题是,将用户设备与网络设备之间分布式锁管理的分布式锁拥有者以及有效期信息公开化,从而使得业务层面可以高效,灵活定制符合自身业务场景的分布式锁服务,并使各用户设备进程可以及时得到分布式锁的变更通知以重新争抢分布式锁,最终加快分布式锁拥有者的切换过程。
为此,根据本申请的一个方面提供的一种在网络设备端实现分布式锁管理的方法,其中,所述方法包括:
获取所述用户设备的查询请求,并反馈关于分布式锁的管理信息;
获取所述用户设备的创建锁文件的请求,并创建所述锁文件;
获取成功创建所述锁文件的用户设备对所述管理信息的更新请求,并更新所述管理信息。
进一步地,所反馈的所述管理信息包括以下至少任一项:
是否查询到该管理信息的信息;
所述管理信息的相关有效信息;
所述管理信息的锁拥有者的信息。
进一步地,获取所述用户设备的创建锁文件的请求,并创建所述锁文件包括:
查询当前是否存在已有锁文件;
若当前不存在已有锁文件,则创建所述锁文件,并向所述用户设备反馈创建成功的信息;
若当前存在已有锁文件,并且锁文件所有者非当前创建者,则向所述用户设备反馈创建失败的信息。
进一步地,获取成功创建所述锁文件的用户设备对所述管理信息的更新请求,并更新所述管理信息包括以下至少任一项:
更新所述管理信息的相关有效信息;
更新所述管理信息的锁拥有者的信息;
更新与所述用户设备的相关协商信息。
进一步地,所述方法还包括:
当所述分布式锁的拥有者的用户设备请求放弃所述分布式锁的占有权或所述分布式锁服务超时,删除当前的锁文件。
进一步地,所述方法还包括:
获取所述用户设备关于订阅所述锁文件变更信息通知的请求;
当所述锁文件变更时,向请求订阅的用户设备发送所述锁文件的变更通知信息。
进一步地,所述方法还包括:
主动删除所述锁文件,并将所述锁文件的变更通知信息通知当前用户设备和指定转移的用户设备;
更新所述管理信息,以将所述管理信息的拥有者从当前用户设备变更为所述指定转移的用户设备。
进一步地,所述方法还包括:
根据所述用户设备的请求创建关于所述用户设备自身的存活信息文件。
根据本申请另一方面提供的一种在用户设备端实现分布式锁管理的方法,其中,所述方法包括:
向网络设备请求查询关于分布式锁的管理信息,并判断所查询的管理信息是否符合争抢分布式锁的条件;
当符合争抢分布式锁的条件,则向所述网络设备请求创建锁文件;
当所述锁文件创建成功,则基于所述锁文件向所述网络设备请求更新所述管理信息。
进一步地,判断所查询的管理信息是否符合争抢分布式锁的条件包括:
判断所查询的管理信息是否包括至少以下任一项:
未查询到所述管理信息,
查询到所述管理信息失效,
查询到所述管理信息的锁拥有者为所述用户设备自身;
若包括至少任一项,则符合争抢分布式锁的条件。
进一步地,向所述网络设备请求创建锁文件包括:
向所述网络设备请求创建锁文件,所述锁文件的所有者为所述用户设备自身。
进一步地,基于所述锁文件向所述网络设备请求更新所述管理信息包括以下至少任一项:
请求更新所述管理信息的相关有效信息;
请求更新所述管理信息的锁拥有者的信息;
请求更新与所述网络设备的相关协商信息。
进一步地,所述方法还包括:
当符合争抢分布式锁的条件但请求创建所述锁文件失败,则判断所述管理信息的锁拥有者是否为所述用户设备自身;
当所述管理信息的锁拥有者为所述用户设备自身,则继续请求创建所述锁文件,直至所述锁文件创建成功;
当所述管理信息的所拥有者非所述用户设备自身,则重新查询所述管理信息,并判断所查询的管理信息是否符合争抢分布式锁的条件,直至符合争抢分布式锁的条件,再请求创建所述锁文件。
进一步地,重新查询所述管理信息,并判断所查询的管理信息是否符合争抢分布式锁的条件,直至符合争抢分布式锁的条件,再请求创建所述锁文件还包括:
请求订阅所述锁文件的变更通知信息;
当获取到所述锁文件的变更通知信息时,重新查询关于分布式锁的管理信息,并判断所查询的管理信息是否符合争抢分布式锁的条件,直至符合争抢分布式锁的条件,再请求创建所述锁文件。
进一步地,当所述锁文件创建成功,则基于所述锁文件向所述网络设备请求更新所述管理信息包括:
向所述网络设备请求更新所述管理信息的分布式锁拥有者的信息为所述用户设备自身;
向所述网络设备请求更新所述管理信息为有效,并发送所述管理信息的有效期信息。
进一步地,所述方法还包括:
当所述锁文件创建成功,则
请求创建关于所述用户设备自身的存活信息文件,
请求订阅所述锁文件的变更通知信息,
当获取到所述锁文件变更通知信息,则请求删除用户设备自身的存活信息文件。
根据本申请又一方面提供的一种实现分布式锁管理的网络设备,其中,所述设备包括:
管理信息反馈装置,用于获取所述用户设备的查询请求,并反馈关于分布式锁的管理信息;
锁文件创建装置,用于获取所述用户设备的创建锁文件的请求,并创建所述锁文件;
管理信息更新装置,用于获取成功创建所述锁文件的用户设备对所述管理信息的更新请求,并更新所述管理信息。
进一步地,所反馈的所述管理信息包括以下至少任一项:
是否查询到该管理信息的信息;
所述管理信息的相关有效信息;
所述管理信息的锁拥有者的信息。
进一步地,所述锁文件创建装置用于:
查询当前是否存在已有锁文件;
若当前不存在已有锁文件,则创建所述锁文件,并向所述用户设备反馈创建成功的信息;
若当前存在已有锁文件,并且锁文件所有者非当前创建者,则向所述用户设备反馈创建失败的信息。
进一步地,所述管理信息更新装置用于更新以下至少任一项:
更新所述管理信息的相关有效信息;
更新所述管理信息的锁拥有者的信息;
更新与所述用户设备的相关协商信息。
进一步地,所述网络设备还包括:
锁文件删除装置,用于当所述分布式锁的拥有者的用户设备请求放弃所述分布式锁的占有权或所述分布式锁服务超时,删除当前的锁文件。
进一步地,所述网络设备还包括:
锁文件变更通知装置,用于获取所述用户设备关于订阅所述锁文件变更信息通知的请求,当所述锁文件变更时,向请求订阅的用户设备发送所述锁文件的变更通知信息。
进一步地,所述网络设备还包括:
转移控制装置,用于主动删除所述锁文件,并将所述锁文件的变更通知信息通知当前用户设备和指定转移的用户设备,更新所述管理信息,以将所述管理信息的拥有者从当前用户设备变更为所述指定转移的用户设备。
进一步地,所述网络设备还包括:
存活信息创建装置,用于根据所述用户设备的请求创建关于所述用户设备自身的存活信息文件。
根据本申请再一实施例提供的一种实现分布式锁管理的用户设备,其中,所述用户设备包括:
管理信息查询请求装置,用于向网络设备请求查询关于分布式锁的管理信息,并判断所查询的管理信息是否符合争抢分布式锁的条件;
锁文件创建请求装置,用于当符合争抢分布式锁的条件,则向所述网络设备请求创建锁文件;
管理信息更新请求装置,用于当所述锁文件创建成功,则基于所述锁文件向所述网络设备请求更新所述管理信息。
进一步地,所述管理信息查询请求装置用于:
判断所查询的管理信息是否包括至少以下任一项:
未查询到所述管理信息,
查询到所述管理信息失效,
查询到所述管理信息的锁拥有者为所述用户设备自身;
若包括至少任一项,则符合争抢分布式锁的条件。
进一步地,所述锁文件创建请求装置用于:
向所述网络设备请求创建锁文件,所述锁文件的所有者为所述用户设备自身。
进一步地,所述管理信息更新请求装置用于请求更新以下至少任一项:
请求更新所述管理信息的相关有效信息;
请求更新所述管理信息的锁拥有者的信息;
请求更新与所述网络设备的相关协商信息。
进一步地,所述用户设备还包括:
创建失败管理装置,用于:
当符合争抢分布式锁的条件但请求创建所述锁文件失败,则判断所述管理信息的锁拥有者是否为所述用户设备自身;
当所述管理信息的锁拥有者为所述用户设备自身,则继续请求创建所述锁文件,直至所述锁文件创建成功;
当所述管理信息的所拥有者非所述用户设备自身,则重新查询所述管理信息,并判断所查询的管理信息是否符合争抢分布式锁的条件,直至符合争抢分布式锁的条件,再请求创建所述锁文件。
进一步地,创建失败管理装置还用于:
请求订阅所述锁文件的变更通知信息;
当获取到所述锁文件的变更通知信息时,重新查询关于分布式锁的管理信息,并判断所查询的管理信息是否符合争抢分布式锁的条件,直至符合争抢分布式锁的条件,再请求创建所述锁文件。
进一步地,所述管理信息更新请求装置用于:
向所述网络设备请求更新所述管理信息的分布式锁拥有者的信息为所述用户设备自身;
向所述网络设备请求更新所述管理信息为有效,并发送所述管理信息的有效期信息。
进一步地,所述用户设备还包括:
存活信息管理装置,用于当所述锁文件创建成功,则
请求创建关于所述用户设备自身的存活信息文件,
请求订阅所述锁文件的变更通知信息,
当获取到所述锁文件变更通知信息,则请求删除用户设备自身的存活信息文件。
与现有技术相比,根据本申请的实施例,所述实现分布式锁管理的设备及方法基于公开化的管理信息,通过公开分布式锁拥有者以及有效期信息的管理信息,将原先寄托于用户设备与网络设备之间的分布式锁拥有者以及有效期信息公开化,从而使得业务层面可以高效,灵活定制符合自身业务场景的分布式锁服务。
进一步地,通过各争抢分布式锁失败的用户设备进程主动订阅分布式锁文件,当分布式锁占有者进程主动释放分布式锁时,各用户设备进程可以及时得到变更通知进而重新争抢分布式锁,最终加快分布式锁拥有者的切换过程。
附图说明
通过阅读参照以下附图所作的对非限制性实施例所作的详细描述,本申请的其它特征、目的和优点将会变得更明显:
图1示出根据本发明一个方面的用于为分布式锁服务系统拓扑图;
图2示出根据本申请一方面提供的一种实现分布式锁管理的网络设备与用户设备的配合示意图;
图3示出根据本申请一方面提供的一种用户设备在实现分布式锁管理的方法流程示意图;
图4至图6示出根据本申请一优选实施例提供的一种网络设备与用户设备的配合的方法流程示意图;
图7示出根据本申请一方面提供的一种在网络设备端实现分布式锁管理的方法流程示意图;
图8示出根据本申请一方面提供的一种在用户设备端实现分布式锁管理的方法流程示意图;
图9示出根据本申请一方面提供的一种在用户设备端和网络设备端配合实现分布式锁管理的方法流程示意图。
附图中相同或相似的附图标记代表相同或相似的部件。
具体实施方式
下面结合附图对本申请作进一步详细描述。
图1示出根据本发明一个方面的用于为分布式锁服务系统拓扑图,其中包括网络设备1以及多个与之经由网络相连接的用户设备2。
其中,网络设备1可与多个用户设备2经由网络相连接,分布式锁服务系统中用户设备2(即用户设备2)与网络设备1(即网络设备1)建立连接后,随即会创建一个用户设备2线程(Session),并绑定用户设备2与网络设备1会话,用户设备2与网络设备1通过定期心跳来更新会话生命期。用户设备2会通过与网络设备1的定期心跳来更新对应连接上的用户设备2线程的生命期。创建成功之后,用户设备2即可以执行锁相关操作,譬如争抢分布式锁的操作等。网络设备1通过检查分布式锁文件的拥有者(Lock Owner)对应用户设备2线程信息与请求的用户设备2线程信息是否匹配,若不匹配则向用户设备2返回抢锁失败信息。
在此,关于分布式锁的互斥性,用户设备2与网络设备1建立连接后,随即会创建一个进程(Session),该进程与建立的连接耦合,即一条连接上仅可以创建一个进程。用户设备2会通过与网络设备1的定期心跳来更新对应连接上的进程的生命期。创建成功进程之后,用户设备2即可以执行锁相关操作,譬如抢锁操作,当分布式锁文件不存在,那么网络设备1直接为该用户设备2对应的进程创建锁文件,该新创建的锁文件对应的Owner即为该用户设备2的进程;当分布式锁文件已经存在,网络设备1通过检查锁文件所有权(Owner)对应进程信息与用户设备2的进程信息是否匹配,若不匹配则返回抢锁失败信息。
分布式锁服务系统中的分布式锁的具体形态是存储在网络设备1的Ephemeral类型文件。这种Ephemeral类型文件有两个特别性质:a)有所有权(Owner)概念,即会记录文件创建者的进程ID(SessionId),且仅允许该进程ID对应的用户设备2进程对该Ephemeral文件操作,其他用户设备2进程操作该Ephemeral文件会失败,该性质确保了分布式锁的互斥性;b)有生命期概念,如果该文件的所有权对应的进程(Session)过期,该文件会被网络设备1自动删除,该性质确保分布式锁会被合理释放,避免死锁现象。
所述进程的线程有效期本身依赖用户设备2与网络设备1定期心跳来更新有效期。为了保证用户设备2比网络设备1先判定线程超时,从而防止出现两个用户设备2同时认为自己占有分布式锁这种不一致现象发生,用户设备2与网络设备1需要协商各自的线程超时时间。分布式锁服务系统的用户设备2向网络设备1注册线程时,需指定用户设备2认定的线程超时值,网络设备1会据此计算出对应网络设备1线程超时值。分布式锁服务系统的用户设备2、网络设备1通过心跳来互相确认线程的有效性,更新本端认定的线程生命期,如果在本端的线程超时时间内没有收到心跳回复/心跳,那么就主动判断线程过期。
此外,为保证用户设备2和网络设备1双方对同一线程有效期的超时判断可以维持分布式一致性,需要网络设备1的线程超时时间至少为用户设备2的线程超时时间的2倍以上,保证用户设备2先于网络设备1得知丢锁。
在此,所述网络包括但不限于WCDMA、CDMA2000、TD-SCDMA、GSM、CDMA1x、WIFI、WAPI、WiMax、无线自组织网络(Ad Hoc网络)等。另外,网络设备1可以是一台服务器,也可以是通过局域网连接的多台服务器或者通过互联网连接的多台服务器,还可以是由多台服务器构成的云。在此,云由基于云计算(Cloud Computing)的大量计算机或网络服务器构成,其中,云计算是分布式计算的一种,由一群松散耦合的计算机集组成的一个超级虚拟计算机。而用户设备2可以是任意一种可以进行网络通信的移动终端,包括但不限于手机、游戏机、掌上电脑(PPC)、平板电脑或笔记本电脑。用户设备2与网络设备1之间的通信相互独立,可以是基于诸如TCP/IP协议、UDP协议等的分组数据传输。
本领域技术人员应能理解上述用户设备2、网络设备1以及连接其间的网络及通信方式仅为举例,其他现有的或今后可能出现的用户设备、网络设备、网络或通信方式如可适用于本发明,也应包含在本发明保护范围以内,并在此以引用方式包含于此。
本领域技术人员还应能理解,图1中仅为简明起见而示出的各类网络元素的数量可能小于一个实际网络中的数量,但这种省略无疑地是以不会影响对本发明进行清楚、充分的公开为前提的。
为简明起见,下面以网络设备1及一个或两个用户设备2组成的分布式系统为例进行描述。本领域技术人员应能理解,网络设备1可以同时与多个用户设备2同时交互,与多个用户设备2建立联系。
图2示出根据本申请一方面提供的一种实现分布式锁管理的网络设备与用户设备的配合示意图,其中,所述网络设备1包括:管理信息反馈装置11、锁文件创建装置12和管理信息更新装置13,所述用户设备2包括:管理信息查询请求装置21、锁文件创建请求装置22和管理信息更新请求装置23。
其中,管理信息反馈装置11获取所述用户设备的查询请求,并反馈关于分布式锁的管理信息;锁文件创建装置12获取所述用户设备的创建锁文件的请求,并创建所述锁文件;管理信息更新装置13获取成功创建所述锁文件的用户设备对所述管理信息的更新请求,并更新所述管理信息。
在此,所述网络设备1包括但不限于包括一种能够按照事先设定或存储的指令,自动进行数值计算和信息处理的电子设备,其硬件包括但不限于微处理器、专用集成电路(ASIC)、可编程门阵列(FPGA)、数字处理器(DSP)、嵌入式设备等。所述网络包括但不限于互联网、广域网、城域网、局域网、VPN网络、无线自组织网络(Ad Hoc网络)等。优选地,所述网络设备1还可以是运行于通过网络相集成所构成的设备上的脚本程序。当然,本领域技术人员应能理解上述网络设备1仅为举例,其他现有的或今后可能出现的网络设备1如可适用于本申请,也应包含在本申请保护范围以内,并在此以引用方式包含于此。
所述网络设备1具有关于分布式锁的管理信息(lease),并能够根据用户设备的查询请求反馈所述管理信息,并能够根据成功创建所述锁文件的用户设备的更新请求,对更新所述管理信息,所述网络设备1通过管理信息公开化,既使用户设备能够根据需要从管理信息中查询到当前分布式锁的相关信息,例如分布式锁拥有者信息和分布式锁相关有效信息等,并且能够根据用户设备的更新请求更新所述管理设备,以维持管理设备的最新状态,进而使得业务层面可以高效,灵活定制符合自身业务场景的分布式锁服务。
在此,所述用户设备2包括但不限于用户设备、或用户设备与网络设备通过网络相集成所构成的设备。所述用户设备其包括但不限于任何一种可与用户通过触摸板进行人机交互的移动电子产品,例如智能手机、PDA等,所述移动电子产品可以采用任意操作系统,如android操作系统、iOS操作系统等。其中,所述网络设备包括一种能够按照事先设定或存储的指令,自动进行数值计算和信息处理的电子设备,其硬件包括但不限于微处理器、专用集成电路(ASIC)、可编程门阵列(FPGA)、数字处理器(DSP)、嵌入式设备等。所述网络包括但不限于互联网、广域网、城域网、局域网、VPN网络、无线自组织网络(Ad Hoc网络)等。所述用户设备2还可以是运行于所述用户设备、或用户设备与网络设备、触摸终端或网络设备与触摸终端通过网络相集成所构成的设备上的脚本程序。当然,本领域技术人员应能理解上述用户设备2仅为举例,其他现有的或今后可能出现的用户设备2如可适用于本申请,也应包含在本申请保护范围以内,并在此以引用方式包含于此。
其中,管理信息查询请求装置21向网络设备请求查询关于分布式锁的管理信息,并判断所查询的管理信息是否符合争抢分布式锁的条件;锁文件创建请求装置22当符合争抢分布式锁的条件,则向所述网络设备请求创建锁文件;管理信息更新请求装置23当所述锁文件创建成功,则基于所述锁文件向所述网络设备请求更新所述管理信息。
所述用户设备2能够通过查询分布式锁的管理信息了解当前分布式锁的相关信息,并根据所查询的管理信息决定是否开始争抢分布式锁,使得业务层面可以高效,灵活定制符合自身业务场景的分布式锁服务。
在此,所反馈的所述管理信息(Lease)包括以下至少任一项:是否查询到该管理信息的信息;所述管理信息的相关有效信息;所述管理信息的锁拥有者的信息。
具体地,分布式锁的管理信息在分布式锁服务系统中以公共文件(Normal文件)形式存在,所有用户设备2进程(Session)均可操作该类型文件,且创建后一直存在,生命期与各用户设备2进程无关。优选地,所述管理信息包括三部分:当前锁拥有者信息(myId)、末次更新时间(lastUpdateTime)和失效时间(ValidPeriod)。所述管理信息记录的分布式锁拥有者信息是通过myId来表示的,myId是分布式锁服务系统中各用户设备2根据统一规则生成的全局唯一标识,譬如用户可以选择通用唯一识别码(UUID,Universally Unique Identifier)来作为自身myId。管理信息记录的分布式锁有效期信息包括两个部分,一部分是上次更新用户设备2进程的时间,另一部分则是上次设置的用户设备2进程的有效期,两部分相加则是用户设备2进程的失效时间。
图3示出根据本申请一方面提供的一种用户设备在实现分布式锁管理的方法流程示意图,结合图2和图3,用户设备2的管理信息查询请求装置21首先向网络设备1请求获取管理信息,所述网络设备1的管理信息反馈装置11获取所述用户设备的查询请求,并反馈关于分布式锁的管理信息,接着,管理信息查询请求装置21检查该分布式锁当前的管理信息,若同时满足下面三条,说明当前分布式锁的管理信息有效且为其它用户设备2进程所占有,则用户设备2的进程则直接放弃抢锁:1)该分布式锁对应的Lease存在;2)管理信息记录的分布式锁拥有者信息与用户设备2自身进程的myID不一致;3)管理信息尚处在有效期内。如果不符合上述三条中任意一条或任几条,则说明该分布式锁当前的管理信息不存在、或者已经失效、或者用户设备2的myID管理信息记录的分布式锁拥有者信息相同,则用户设备2进程可以进行分布式锁争抢。
接着,所述锁文件创建请求装置22向所述网络设备请求创建锁文件,所述锁文件的所有者为所述用户设备自身。具体地,所述锁文件创建请求装置21尝试争抢分布式锁,即尝试创建分布式锁对应的锁文件(Lock文件)。锁文件创建装置12获取所述用户设备的创建锁文件的请求,并创建所述锁文件。所述锁文件创建装置12查询当前是否存在已有锁文件;若当前不存在已有锁文件,则创建所述锁文件,并向所述用户设备反馈创建成功的信息;若当前存在已有锁文件,并且锁文件所有者非当前创建者,则向所述用户设备反馈创建失败的信息。
如果用户设备2的进程创建锁文件成功,那么抢锁成功,进入后续分布式锁管理信息更新与维护的阶段。
进一步地,所述用户设备2还包括:创建失败管理装置24,用于处理创建失败的情况。当符合争抢分布式锁的条件但请求创建所述锁文件失败,意味着两种情况,一种是当前的用户设备2在创建过程出错,需要重新尝试创建锁文件,另一种情况是同时有多个用户设备2进程进入了阶段二,并且有其它用户设备2进程抢先抢锁成功,创建了相应锁文件,故本用户设备2进程创建锁文件失败。创建失败管理装置24需要判断所述管理信息的锁拥有者是否为所述用户设备自身;当所述管理信息的锁拥有者为所述用户设备自身,则继续请求创建所述锁文件,直至所述锁文件创建成功;当所述管理信息的所拥有者非所述用户设备自身,则重新查询所述管理信息,并判断所查询的管理信息是否符合争抢分布式锁的条件,直至符合争抢分布式锁的条件,再请求创建所述锁文件。
在分布式锁管理信息更新与维护的阶段,管理信息更新请求装置23会基于所述锁文件向所述网络设备请求更新所述管理信息。具体地,管理信息更新请求装置23根据需要创建分布式锁对应的管理信息文件,更新其中的锁拥有者的信息、相关有效信息,例如更新时间以及有效期等信息,然后请求更新相关协商信息,包括根据业务制定的具体更新规则譬如定期更新等,后续执行管理信息文件更新动作等。
优选地,所述网络设备还包括:锁文件删除装置,用于当所述分布式锁的拥有者的用户设备请求放弃所述分布式锁的占有权或所述分布式锁服务超时,删除当前的锁文件。基于管理信息的分布式锁管理机制中,具有分布式锁所有权的用户设备2的进程会申请释放分布式锁所有权,过程分成两阶段,首先主动删除分布式锁的管理信息文件,不再宣布对该分布式锁的控制权,使得其它用户设备2进程可以进行抢锁,锁文件删除装置会删除当前的锁文件;接着,用户设备2删除相应分布式锁文件,以彻底释放分布式锁,以使其他用户设备2能够成功争抢到分布式锁。
根据本申请一优选的实施例中,在争抢分布式锁过程中,总是会有争抢失败的用户设备2的进程,这些进程通常会通过不停的重试机制,直至占据分布式锁的用户设备2的进程释放锁所有权后,方有可能抢锁成功。
是以,所述用户设备2在前述实施例基础上,所述创建失败管理装置24还可以在分布式锁创建失败且所述管理信息的所拥有者非所述用户设备自身之后,请求订阅所述锁文件的变更通知信息;当获取到所述锁文件的变更通知信息时,重新查询关于分布式锁的管理信息,并判断所查询的管理信息是否符合争抢分布式锁的条件,直至符合争抢分布式锁的条件,再请求创建所述锁文件。所述网络设备1在前述实施例的基础上,还包括锁文件变更通知装置,用于获取所述用户设备关于订阅所述锁文件变更信息通知的请求,当所述锁文件变更时,向请求订阅的用户设备发送所述锁文件的变更通知信息。
一个用户设备2首先抢锁成功,其他用户设备2争抢同一分布式锁会失败,此时,其他用户设备2会通过订阅分布式锁的锁文件的变动。当在先用户设备2的进程主动释放分布式锁时,则主动删除分布式锁的锁文件,此时网络设备1的锁文件变更通知装置会通知订阅了该锁文件变动的其他所有用户设备2该变更通知,因此其他用户设备2的进程将会收到该变更通知,从而及时重新争抢分布式锁。通过“订阅+通知”机制从而避免锁切换机制引起的无谓的抢锁重试,也缩短了分布式锁切换时间间隔。
基于网络设备1与用户设备2之间基于争抢分布式锁的分布式锁管理机制下的分布式锁所有权转移可以是无目的,公平随机且业务不可控的。
根据本申请另一优选的实施例,所述网络设备1与用户设备2还可以支持有针对性地分布式锁控制权的转移。
具体地,在上述实施例的基础上,所述网络设备1还包括:转移控制装置和存活信息创建装置,存活信息创建装置用于根据所述用户设备的请求创建关于所述用户设备自身的存活信息文件,转移控制装置用于主动删除所述锁文件,并将所述锁文件的变更通知信息通知当前用户设备和指定转移的用户设备,更新所述管理信息,以将所述管理信息的拥有者从当前用户设备变更为所述指定转移的用户设备。所述用户设备2还包括:存活信息管理装置,用于当所述锁文件创建成功,则请求创建关于所述用户设备自身的存活信息文件,请求订阅所述锁文件的变更通知信息,当获取到所述锁文件变更通知信息,则请求删除用户设备自身的存活信息文件。
图4至图6示出根据本申请一优选实施例提供的一种网络设备与用户设备的配合的方法流程示意图,结合图4、图5和图6,用户设备2创建某个锁文件成功后,订阅该锁文件改动,随即创建:1)请求创建关于所述用户设备自身的存活信息文件,以供其它用户设备2查询确认当前的用户设备2是否存活;2)请求更新管理信息文件,公开宣布自己当前占有着该分布式锁。其余用户设备2争抢该分布式锁即创建该锁文件会失败,则转而订阅该分布式锁对应管理信息文件的改动。网络设备1的管理信息更新装置13会更新所述管信息。网络设备1的存活信息创建装置会根据所述网络设备1的请求根据所述用户设备2的请求创建关于所述用户设备自身的存活信息文件。
为了协调主动将分布式锁的控制权的转移,所述网络设备1的转移控制装置(Controller)会根据业务设定主动删除所述锁文件,并将所述锁文件的变更通知信息通知当前用户设备和指定转移的用户设备,更新所述管理信息,以将所述管理信息的拥有者从当前用户设备变更为所述指定转移的用户设备。
同时,意识到自己丢锁的用户设备2会主动删除自己存活文件。事实上,转移控制装置在删掉分布式锁文件之后会定期检查原用户设备2的存活文件,当发现原用户设备2的存活文件消失,确定原用户设备2已经意识到自己丢锁,进而可以开始触发指定转移的用户设备争抢分布式锁动作。
进一步地,转移控制装置为通知指定转移的用户设备2接收分布式锁所有权,转移控制装置会修改管理信息文件内容为指定转移的用户设备2的myId信息,指定转移的用户设备2因为订阅了管理信息文件的变动,因而会接收到该管理信息文件修改通知,通过对比从管理信息文件读取到的分布式锁所有者myId与自身的myId信息,进而意识到自己拥有争抢锁的资格,继而创建Lock文件以及自己的Living文件,最终抢夺到对应分布式锁,完成了分布式锁的定向转移过程。在此期间,所述管理信息文件的有效信息一直为有效。
图7示出根据本申请一方面提供的一种在网络设备端实现分布式锁管理的方法流程示意图,其中,所述在网络设备端的方法包括:步骤S11、步骤S12和步骤S13,图8示出根据本申请一方面提供的一种在用户设备端实现分布式锁管理的方法流程示意图,其中,所述用户设备的方法包括:步骤S21、步骤S22和步骤S23。
图9示出根据本申请一方面提供的一种在用户设备端和网络设备端配合实现分布式锁管理的方法流程示意图,以下结合图7、图8和图9所示,其中,步骤S11:获取所述用户设备的查询请求,并反馈关于分布式锁的管理信息;步骤S12:获取所述用户设备的创建锁文件的请求,并创建所述锁文件;步骤S13:获取成功创建所述锁文件的用户设备对所述管理信息的更新请求,并更新所述管理信息。
所述在网络设备1端的方法通过根据用户设备的查询请求反馈所述管理信息,并能够根据成功创建所述锁文件的用户设备的更新请求,对更新所述管理信息,通过管理信息公开化,既使用户设备能够根据需要从管理信息中查询到当前分布式锁的相关信息,例如分布式锁拥有者信息和分布式锁相关有效信息等,并且能够根据用户设备的更新请求更新所述管理设备,以维持管理设备的最新状态,进而使得业务层面可以高效,灵活定制符合自身业务场景的分布式锁服务。
其中,步骤S21向网络设备请求查询关于分布式锁的管理信息,并判断所查询的管理信息是否符合争抢分布式锁的条件;步骤S22当符合争抢分布式锁的条件,则向所述网络设备请求创建锁文件;步骤S23当所述锁文件创建成功,则基于所述锁文件向所述网络设备请求更新所述管理信息。
所述在用户设备2的方法能够通过查询分布式锁的管理信息了解当前分布式锁的相关信息,并根据所查询的管理信息决定是否开始争抢分布式锁,使得业务层面可以高效,灵活定制符合自身业务场景的分布式锁服务。
在此,所反馈的所述管理信息(Lease)包括以下至少任一项:是否查询到该管理信息的信息;所述管理信息的相关有效信息;所述管理信息的锁拥有者的信息。
具体地,分布式锁的管理信息在分布式锁服务系统中以公共文件(Normal文件)形式存在,所有用户设备2进程(Session)均可操作该类型文件,且创建后一直存在,生命期与各用户设备2进程无关。优选地,所述管理信息包括三部分:当前锁拥有者信息(myId)、末次更新时间(lastUpdateTime)和失效时间(ValidPeriod)。所述管理信息记录的分布式锁拥有者信息是通过myId来表示的,myId是分布式锁服务系统中各用户设备2根据统一规则生成的全局唯一标识,譬如用户可以选择通用唯一识别码(UUID,Universally Unique Identifier)来作为自身myId。管理信息记录的分布式锁有效期信息包括两个部分,一部分是上次更新用户设备2进程的时间,另一部分则是上次设置的用户设备2进程的有效期,两部分相加则是用户设备2进程的失效时间。
步骤S21首先向网络设备1请求获取管理信息,步骤S11获取所述用户设备的查询请求,并反馈关于分布式锁的管理信息,接着,步骤S21检查该分布式锁当前的管理信息,若同时满足下面三条,说明当前分布式锁的管理信息有效且为其它用户设备2进程所占有,则用户设备2的进程则直接放弃抢锁:1)该分布式锁对应的Lease存在;2)管理信息记录的分布式锁拥有者信息与用户设备2自身进程的myID不一致;3)管理信息尚处在有效期内。如果不符合上述三条中任意一条或任几条,则说明该分布式锁当前的管理信息不存在、或者已经失效、或者用户设备2的myID管理信息记录的分布式锁拥有者信息相同,则用户设备2进程可以进行分布式锁争抢。
接着,所述步骤S22向所述网络设备请求创建锁文件,所述锁文件的所有者为所述用户设备自身。具体地,所述步骤S21尝试争抢分布式锁,即尝试创建分布式锁对应的锁文件(Lock文件)。步骤S12获取所述用户设备的创建锁文件的请求,并创建所述锁文件。所述步骤S12查询当前是否存在已有锁文件;若当前不存在已有锁文件,则创建所述锁文件,并向所述用户设备反馈创建成功的信息;若当前存在已有锁文件,并且锁文件所有者非当前创建者,则向所述用户设备反馈创建失败的信息。
如果用户设备2的进程创建锁文件成功,那么抢锁成功,进入后续分布式锁管理信息更新与维护的阶段。
进一步地,所述方法还包括:步骤S24,用于处理创建失败的情况。当符合争抢分布式锁的条件但请求创建所述锁文件失败,意味着两种情况,一种是当前的用户设备2在创建过程出错,需要重新尝试创建锁文件,另一种情况是同时有多个用户设备2进程进入了阶段二,并且有其它用户设备2进程抢先抢锁成功,创建了相应锁文件,故本用户设备2进程创建锁文件失败。步骤S24需要判断所述管理信息的锁拥有者是否为所述用户设备自身;当所述管理信息的锁拥有者为所述用户设备自身,则继续请求创建所述锁文件,直至所述锁文件创建成功;当所述管理信息的所拥有者非所述用户设备自身,则重新查询所述管理信息,并判断所查询的管理信息是否符合争抢分布式锁的条件,直至符合争抢分布式锁的条件,再请求创建所述锁文件。
在分布式锁管理信息更新与维护的阶段,步骤S23会基于所述锁文件向所述网络设备请求更新所述管理信息。具体地,步骤S23根据需要创建分布式锁对应的管理信息文件,更新其中的锁拥有者的信息、相关有效信息,例如更新时间以及有效期等信息,然后请求更新相关协商信息,包括根据业务制定的具体更新规则譬如定期更新等,后续执行管理信息文件更新动作等。
优选地,所述方法还包括:当所述分布式锁的拥有者的用户设备请求放弃所述分布式锁的占有权或所述分布式锁服务超时,删除当前的锁文件。基于管理信息的分布式锁管理机制中,具有分布式锁所有权的用户设备2的进程会申请释放分布式锁所有权,过程分成两阶段,首先主动删除分布式锁的管理信息文件,不再宣布对该分布式锁的控制权,使得其它用户设备2进程可以进行抢锁,网络设备1会删除当前的锁文件;接着,用户设备2删除相应分布式锁文件,以彻底释放分布式锁,以使其他用户设备2能够成功争抢到分布式锁。
根据本申请一优选的实施例中,在争抢分布式锁过程中,总是会有争抢失败的用户设备2的进程,这些进程通常会通过不停的重试机制,直至占据分布式锁的用户设备2的进程释放锁所有权后,方有可能抢锁成功。
是以,所述用户设备2在前述实施例基础上,所述步骤S24还可以在分布式锁创建失败且所述管理信息的所拥有者非所述用户设备自身之后,请求订阅所述锁文件的变更通知信息;当获取到所述锁文件的变更通知信息时,重新查询关于分布式锁的管理信息,并判断所查询的管理信息是否符合争抢分布式锁的条件,直至符合争抢分布式锁的条件,再请求创建所述锁文件。所述网络设备1在前述实施例的基础上,还包括获取所述用户设备关于订阅所述锁文件变更信息通知的请求,当所述锁文件变更时,向请求订阅的用户设备发送所述锁文件的变更通知信息。
一个用户设备2首先抢锁成功,其他用户设备2争抢同一分布式锁会失败,此时,其他用户设备2会通过订阅分布式锁的锁文件的变动。当在先用户设备2的进程主动释放分布式锁时,则主动删除分布式锁的锁文件,此时网络设备1会通知订阅了该锁文件变动的其他所有用户设备2该变更通知,因此其他用户设备2的进程将会收到该变更通知,从而及时重新争抢分布式锁。通过“订阅+通知”机制从而避免锁切换机制引起的无谓的抢锁重试,也缩短了分布式锁切换时间间隔。
基于网络设备1与用户设备2之间基于争抢分布式锁的分布式锁管理机制下的分布式锁所有权转移可以是无目的,公平随机且业务不可控的。
根据本申请另一优选的实施例,所述网络设备1与用户设备2还可以支持有针对性地分布式锁控制权的转移。
具体地,在上述实施例的基础上,所述方法包括:根据所述用户设备的请求创建关于所述用户设备自身的存活信息文件,及主动删除所述锁文件,并将所述锁文件的变更通知信息通知当前用户设备和指定转移的用户设备,更新所述管理信息,以将所述管理信息的拥有者从当前用户设备变更为所述指定转移的用户设备。所述方法还包括:当所述锁文件创建成功,则请求创建关于所述用户设备自身的存活信息文件,请求订阅所述锁文件的变更通知信息,当获取到所述锁文件变更通知信息,则请求删除用户设备自身的存活信息文件。
如图6所示,用户设备2创建某个锁文件成功后,订阅该锁文件改动,随即创建:1)请求创建关于所述用户设备自身的存活信息文件,以供其它用户设备2查询确认当前的用户设备2是否存活;2)请求更新管理信息文件,公开宣布自己当前占有着该分布式锁。其余用户设备2争抢该分布式锁即创建该锁文件会失败,则转而订阅该分布式锁对应管理信息文件的改动。网络设备1会更新所述管信息。网络设备1会根据所述网络设备1的请求根据所述用户设备2的请求创建关于所述用户设备自身的存活信息文件。
为了协调主动将分布式锁的控制权的转移,所述网络设备1的转移控制装置(Controller)会根据业务设定主动删除所述锁文件,并将所述锁文件的变更通知信息通知当前用户设备和指定转移的用户设备,更新所述管理信息,以将所述管理信息的拥有者从当前用户设备变更为所述指定转移的用户设备。
同时,意识到自己丢锁的用户设备2会主动删除自己存活文件。事实上,转移控制装置在删掉分布式锁文件之后会定期检查原用户设备2的存活文件,当发现原用户设备2的存活文件消失,确定原用户设备2已经意识到自己丢锁,进而可以开始触发指定转移的用户设备争抢分布式锁动作。
进一步地,转移控制装置为通知指定转移的用户设备2接收分布式锁所有权,转移控制装置会修改管理信息文件内容为指定转移的用户设备2的myId信息,指定转移的用户设备2因为订阅了管理信息文件的变动,因而会接收到该管理信息文件修改通知,通过对比从管理信息文件读取到的分布式锁所有者myId与自身的myId信息,进而意识到自己拥有争抢锁的资格,继而创建Lock文件以及自己的Living文件,最终抢夺到对应分布式锁,完成了分布式锁的定向转移过程。在此期间,所述管理信息文件的有效信息一直为有效。
根据本申请的实施例,所述实现分布式锁管理的设备及方法基于公开化的管理信息,通过公开分布式锁拥有者以及有效期信息的管理信息,将原先寄托于用户设备2与网络设备1之间线程管理的分布式锁拥有者以及有效期信息公开化,从而使得业务层面可以高效,灵活定制符合自身业务场景的分布式锁服务。
进一步地,通过各争抢分布式锁失败的用户设备2进程主动订阅分布式锁文件,当分布式锁占有者进程主动释放分布式锁时,各用户设备2进程可以及时得到变更通知进而重新争抢分布式锁,最终加快分布式锁拥有者的切换过程。
需要注意的是,本申请可在软件和/或软件与硬件的组合体中被实施,例如,可采用专用集成电路(ASIC)、通用目的计算机或任何其他类似硬件设备来实现。在一个实施例中,本申请的软件程序可以通过处理器执行以实现上文所述步骤或功能。同样地,本申请的软件程序(包括相关的数据结构)可以被存储到计算机可读记录介质中,例如,RAM存储器,磁或光驱动器或软磁盘及类似设备。另外,本申请的一些步骤或功能可采用硬件来实现,例如,作为与处理器配合从而执行各个步骤或功能的电路。
另外,本申请的一部分可被应用为计算机程序产品,例如计算机程序指令,当其被计算机执行时,通过该计算机的操作,可以调用或提供根据本申请的方法和/或技术方案。而调用本申请的方法的程序指令,可能被存储在固定的或可移动的记录介质中,和/或通过广播或其他信号承载媒体中的数据流而被传输,和/或被存储在根据所述程序指令运行的计算机设备的工作存储器中。在此,根据本申请的一个实施例包括一个装置,该装置包括用于存储计算机程序指令的存储器和用于执行程序指令的处理器,其中,当该计算机程序指令被该处理器执行时,触发该装置运行基于前述根据本申请的多个实施例的方法和/或技术方案。
对于本领域技术人员而言,显然本申请不限于上述示范性实施例的细节,而且在不背离本申请的精神或基本特征的情况下,能够以其他的具体形式实现本申请。因此,无论从哪一点来看,均应将实施例看作是示范性的,而且是非限制性的,本申请的范围由所附权利要求而不是上述说明限定,因此旨在将落在权利要求的等同要件的含义和范围内的所有变化涵括在本申请内。不应将权利要求中的任何附图标记视为限制所涉及的权利要求。此外,显然“包括”一词不排除其他单元或步骤,单数不排除复数。装置权利要求中陈述的多个单元或装置也可以由一个单元或装置通过软件或者硬件来实现。第一,第二等词语用来表示名称,而并不表示任何特定的顺序。
Claims (32)
1.一种在网络设备端实现分布式锁管理的方法,其中,所述方法包括:
获取所述用户设备的查询请求,并反馈关于分布式锁的管理信息;
获取所述用户设备的创建锁文件的请求,并创建所述锁文件;
获取成功创建所述锁文件的用户设备对所述管理信息的更新请求,并更新所述管理信息。
2.根据权利要求1所述的方法,其中,所反馈的所述管理信息包括以下至少任一项:
是否查询到该管理信息的信息;
所述管理信息的相关有效信息;
所述管理信息的锁拥有者的信息。
3.根据权利要求1或2所述的方法,其中,获取所述用户设备的创建锁文件的请求,并创建所述锁文件包括:
查询当前是否存在已有锁文件;
若当前不存在已有锁文件,则创建所述锁文件,并向所述用户设备反馈创建成功的信息;
若当前存在已有锁文件,并且锁文件所有者非当前创建者,则向所述用户设备反馈创建失败的信息。
4.根据权利要求1至3中任一项所述的方法,其中,获取成功创建所述锁文件的用户设备对所述管理信息的更新请求,并更新所述管理信息包括以下至少任一项:
更新所述管理信息的相关有效信息;
更新所述管理信息的锁拥有者的信息;
更新与所述用户设备的相关协商信息。
5.根据权利要求1至4中任一项所述的方法,其中,所述方法还包括:
当所述分布式锁的拥有者的用户设备请求放弃所述分布式锁的占有权或所述分布式锁服务超时,删除当前的锁文件。
6.根据权利要求1至5中任一项所述的方法,其中,所述方法还包括:
获取所述用户设备关于订阅所述锁文件变更信息通知的请求;
当所述锁文件变更时,向请求订阅的用户设备发送所述锁文件的变更通知信息。
7.根据权利要求1至6中任一项所述的方法,其中,所述方法还包括:
主动删除所述锁文件,并将所述锁文件的变更通知信息通知当前用户设备和指定转移的用户设备;
更新所述管理信息,以将所述管理信息的拥有者从当前用户设备变更为所述指定转移的用户设备。
8.根据权利要求7所述的方法,其中,所述方法还包括:
根据所述用户设备的请求创建关于所述用户设备自身的存活信息文件。
9.一种在用户设备端实现分布式锁管理的方法,其中,所述方法包括:
向网络设备请求查询关于分布式锁的管理信息,并判断所查询的管理信息是否符合争抢分布式锁的条件;
当符合争抢分布式锁的条件,则向所述网络设备请求创建锁文件;
当所述锁文件创建成功,则基于所述锁文件向所述网络设备请求更新所述管理信息。
10.根据权利要求8所述的方法,其中,判断所查询的管理信息是否符合争抢分布式锁的条件包括:
判断所查询的管理信息是否包括至少以下任一项:
未查询到所述管理信息,
查询到所述管理信息失效,
查询到所述管理信息的锁拥有者为所述用户设备自身;
若包括至少任一项,则符合争抢分布式锁的条件。
11.根据权利要求9或10所述的方法,其中,向所述网络设备请求创建锁文件包括:
向所述网络设备请求创建锁文件,所述锁文件的所有者为所述用户设备自身。
12.根据权利要求9至11中任一项所述的方法,其中,基于所述锁文件向所述网络设备请求更新所述管理信息包括以下至少任一项:
请求更新所述管理信息的相关有效信息;
请求更新所述管理信息的锁拥有者的信息;
请求更新与所述网络设备的相关协商信息。
13.根据权利要求9至12中任一项所述的方法,其中,所述方法还包括:
当符合争抢分布式锁的条件但请求创建所述锁文件失败,则判断所述管理信息的锁拥有者是否为所述用户设备自身;
当所述管理信息的锁拥有者为所述用户设备自身,则继续请求创建所述锁文件,直至所述锁文件创建成功;
当所述管理信息的所拥有者非所述用户设备自身,则重新查询所述管理信息,并判断所查询的管理信息是否符合争抢分布式锁的条件,直至符合争抢分布式锁的条件,再请求创建所述锁文件。
14.根据权利要求9至13中任一项所述的方法,其中,重新查询所述管理信息,并判断所查询的管理信息是否符合争抢分布式锁的条件,直至符合争抢分布式锁的条件,再请求创建所述锁文件还包括:
请求订阅所述锁文件的变更通知信息;
当获取到所述锁文件的变更通知信息时,重新查询关于分布式锁的管理信息,并判断所查询的管理信息是否符合争抢分布式锁的条件,直至符合争抢分布式锁的条件,再请求创建所述锁文件。
15.根据权利要求9至14中任一项所述的方法,其中,当所述锁文件创建成功,则基于所述锁文件向所述网络设备请求更新所述管理信息包括:
向所述网络设备请求更新所述管理信息的分布式锁拥有者的信息为所述用户设备自身;
向所述网络设备请求更新所述管理信息为有效,并发送所述管理信息的有效期信息。
16.根据权利要求9至15中任一项所述的方法,其中,所述方法还包括:
当所述锁文件创建成功,则
请求创建关于所述用户设备自身的存活信息文件,
请求订阅所述锁文件的变更通知信息,
当获取到所述锁文件变更通知信息,则请求删除用户设备自身的存活信息文件。
17.一种实现分布式锁管理的网络设备,其中,所述设备包括:
管理信息反馈装置,用于获取所述用户设备的查询请求,并反馈关于分布式锁的管理信息;
锁文件创建装置,用于获取所述用户设备的创建锁文件的请求,并创建所述锁文件;
管理信息更新装置,用于获取成功创建所述锁文件的用户设备对所述管理信息的更新请求,并更新所述管理信息。
18.根据权利要求17所述的网络设备,其中,所反馈的所述管理信息包括以下至少任一项:
是否查询到该管理信息的信息;
所述管理信息的相关有效信息;
所述管理信息的锁拥有者的信息。
19.根据权利要求17或18所述的网络设备,其中,所述锁文件创建装置用于:
查询当前是否存在已有锁文件;
若当前不存在已有锁文件,则创建所述锁文件,并向所述用户设备反馈创建成功的信息;
若当前存在已有锁文件,并且锁文件所有者非当前创建者,则向所述用户设备反馈创建失败的信息。
20.根据权利要求17至19中任一项所述的网络设备,其中,所述管理信息更新装置用于更新以下至少任一项:
更新所述管理信息的相关有效信息;
更新所述管理信息的锁拥有者的信息;
更新与所述用户设备的相关协商信息。
21.根据权利要求17至20中任一项所述的网络设备,其中,所述网络设备还包括:
锁文件删除装置,用于当所述分布式锁的拥有者的用户设备请求放弃所述分布式锁的占有权或所述分布式锁服务超时,删除当前的锁文件。
22.根据权利要求17至21中任一项所述的网络设备,其中,所述网络设备还包括:
锁文件变更通知装置,用于获取所述用户设备关于订阅所述锁文件变更信息通知的请求,当所述锁文件变更时,向请求订阅的用户设备发送所述锁文件的变更通知信息。
23.根据权利要求17至22中任一项所述的网络设备,其中,所述网络设备还包括:
转移控制装置,用于主动删除所述锁文件,并将所述锁文件的变更通知信息通知当前用户设备和指定转移的用户设备,更新所述管理信息,以将所述管理信息的拥有者从当前用户设备变更为所述指定转移的用户设备。
24.根据权利要求17至23中任一项所述的网络设备,其中,所述网络设备还包括:
存活信息创建装置,用于根据所述用户设备的请求创建关于所述用户设备自身的存活信息文件。
25.一种实现分布式锁管理的用户设备,其中,所述用户设备包括:
管理信息查询请求装置,用于向网络设备请求查询关于分布式锁的管理信息,并判断所查询的管理信息是否符合争抢分布式锁的条件;
锁文件创建请求装置,用于当符合争抢分布式锁的条件,则向所述网络设备请求创建锁文件;
管理信息更新请求装置,用于当所述锁文件创建成功,则基于所述锁文件向所述网络设备请求更新所述管理信息。
26.根据权利要求25所述的用户设备,其中,所述管理信息查询请求装置用于:
判断所查询的管理信息是否包括至少以下任一项:
未查询到所述管理信息,
查询到所述管理信息失效,
查询到所述管理信息的锁拥有者为所述用户设备自身;
若包括至少任一项,则符合争抢分布式锁的条件。
27.根据权利要求25或26所述的用户设备,其中,所述锁文件创建请求装置用于:
向所述网络设备请求创建锁文件,所述锁文件的所有者为所述用户设备自身。
28.根据权利要求25至27中任一项所述的用户设备,其中,所述管理信息更新请求装置用于请求更新以下至少任一项:
请求更新所述管理信息的相关有效信息;
请求更新所述管理信息的锁拥有者的信息;
请求更新与所述网络设备的相关协商信息。
29.根据权利要求25至28中任一项所述的用户设备,其中,所述用户设备还包括:
创建失败管理装置,用于:
当符合争抢分布式锁的条件但请求创建所述锁文件失败,则判断所述管理信息的锁拥有者是否为所述用户设备自身;
当所述管理信息的锁拥有者为所述用户设备自身,则继续请求创建所述锁文件,直至所述锁文件创建成功;
当所述管理信息的所拥有者非所述用户设备自身,则重新查询所述管理信息,并判断所查询的管理信息是否符合争抢分布式锁的条件,直至符合争抢分布式锁的条件,再请求创建所述锁文件。
30.根据权利要求25至29中任一项所述的用户设备,其中,创建失败管理装置还用于:
请求订阅所述锁文件的变更通知信息;
当获取到所述锁文件的变更通知信息时,重新查询关于分布式锁的管理信息,并判断所查询的管理信息是否符合争抢分布式锁的条件,直至符合争抢分布式锁的条件,再请求创建所述锁文件。
31.根据权利要求25至30中任一项所述的用户设备,其中,所述管理信息更新请求装置用于:
向所述网络设备请求更新所述管理信息的分布式锁拥有者的信息为所述用户设备自身;
向所述网络设备请求更新所述管理信息为有效,并发送所述管理信息的有效期信息。
32.根据权利要求25至31中任一项所述的用户设备,其中,所述用户设备还包括:
存活信息管理装置,用于当所述锁文件创建成功,则
请求创建关于所述用户设备自身的存活信息文件,
请求订阅所述锁文件的变更通知信息,
当获取到所述锁文件变更通知信息,则请求删除用户设备自身的存活信息文件。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510648700.6A CN106572130B (zh) | 2015-10-09 | 2015-10-09 | 用于实现分布式锁管理的方法和设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510648700.6A CN106572130B (zh) | 2015-10-09 | 2015-10-09 | 用于实现分布式锁管理的方法和设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106572130A true CN106572130A (zh) | 2017-04-19 |
CN106572130B CN106572130B (zh) | 2020-10-27 |
Family
ID=58506161
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510648700.6A Active CN106572130B (zh) | 2015-10-09 | 2015-10-09 | 用于实现分布式锁管理的方法和设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106572130B (zh) |
Cited By (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107450991A (zh) * | 2017-07-24 | 2017-12-08 | 无锡江南计算技术研究所 | 一种高效分布式全局锁协调方法 |
CN109101341A (zh) * | 2017-06-21 | 2018-12-28 | 阿里巴巴集团控股有限公司 | 分布式锁的分配方法及设备 |
CN109375988A (zh) * | 2018-11-01 | 2019-02-22 | 郑州云海信息技术有限公司 | 一种分布式锁实现方法和装置 |
CN109495528A (zh) * | 2017-09-12 | 2019-03-19 | 阿里巴巴集团控股有限公司 | 分布式锁所有权调度方法和装置 |
CN110297716A (zh) * | 2019-05-29 | 2019-10-01 | 联动优势电子商务有限公司 | 一种网络交易方法及装置 |
CN110445864A (zh) * | 2019-08-11 | 2019-11-12 | 西藏宁算科技集团有限公司 | 一种云计算环境下分布式锁的实现方法及系统 |
CN111061747A (zh) * | 2019-12-11 | 2020-04-24 | 金蝶软件(中国)有限公司 | 业务单据数据的更新方法及相关设备 |
CN111124697A (zh) * | 2020-01-02 | 2020-05-08 | 中国航空工业集团公司西安航空计算技术研究所 | 面向分布式平台的任务同步和执行方法 |
CN111190913A (zh) * | 2019-12-30 | 2020-05-22 | 联动优势(北京)数字科技有限公司 | 一种分布式锁实现方法及系统 |
WO2020253078A1 (zh) * | 2019-06-17 | 2020-12-24 | 平安科技(深圳)有限公司 | 轻量级请求的并发处理方法及相关设备 |
CN113268357A (zh) * | 2021-07-20 | 2021-08-17 | 国网汇通金财(北京)信息科技有限公司 | 用于批处理的分布式锁处理方法、装置及系统 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20110239219A1 (en) * | 2010-03-29 | 2011-09-29 | International Business Machines Corporation | Protecting shared resources using shared memory and sockets |
CN103731485A (zh) * | 2013-12-26 | 2014-04-16 | 华为技术有限公司 | 一种网络设备、集群存储系统及分布式锁管理方法 |
CN104702655A (zh) * | 2014-03-21 | 2015-06-10 | 杭州海康威视系统技术有限公司 | 云存储资源分配方法及其系统 |
-
2015
- 2015-10-09 CN CN201510648700.6A patent/CN106572130B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20110239219A1 (en) * | 2010-03-29 | 2011-09-29 | International Business Machines Corporation | Protecting shared resources using shared memory and sockets |
CN103731485A (zh) * | 2013-12-26 | 2014-04-16 | 华为技术有限公司 | 一种网络设备、集群存储系统及分布式锁管理方法 |
CN104702655A (zh) * | 2014-03-21 | 2015-06-10 | 杭州海康威视系统技术有限公司 | 云存储资源分配方法及其系统 |
Non-Patent Citations (1)
Title |
---|
西门仙忍: "lease", 《检索自互联网:<URL:HTTPS://BLOG.CSDN.NET/DUXINGXIA356/ARTICLE/DETAILS/42242197?FROM=SINGLEMESSAGE>》 * |
Cited By (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109101341B (zh) * | 2017-06-21 | 2022-02-22 | 阿里巴巴集团控股有限公司 | 分布式锁的分配方法及设备 |
CN109101341A (zh) * | 2017-06-21 | 2018-12-28 | 阿里巴巴集团控股有限公司 | 分布式锁的分配方法及设备 |
US11288253B2 (en) | 2017-06-21 | 2022-03-29 | Alibaba Group Holding Limited | Allocation method and device for a distributed lock |
CN107450991A (zh) * | 2017-07-24 | 2017-12-08 | 无锡江南计算技术研究所 | 一种高效分布式全局锁协调方法 |
CN109495528A (zh) * | 2017-09-12 | 2019-03-19 | 阿里巴巴集团控股有限公司 | 分布式锁所有权调度方法和装置 |
CN109495528B (zh) * | 2017-09-12 | 2022-04-26 | 阿里巴巴集团控股有限公司 | 分布式锁所有权调度方法和装置 |
CN109375988A (zh) * | 2018-11-01 | 2019-02-22 | 郑州云海信息技术有限公司 | 一种分布式锁实现方法和装置 |
CN110297716A (zh) * | 2019-05-29 | 2019-10-01 | 联动优势电子商务有限公司 | 一种网络交易方法及装置 |
CN110297716B (zh) * | 2019-05-29 | 2021-10-01 | 联动优势电子商务有限公司 | 一种网络交易方法及装置 |
WO2020253078A1 (zh) * | 2019-06-17 | 2020-12-24 | 平安科技(深圳)有限公司 | 轻量级请求的并发处理方法及相关设备 |
CN110445864B (zh) * | 2019-08-11 | 2022-04-08 | 西藏宁算科技集团有限公司 | 一种云计算环境下分布式锁的实现方法及系统 |
CN110445864A (zh) * | 2019-08-11 | 2019-11-12 | 西藏宁算科技集团有限公司 | 一种云计算环境下分布式锁的实现方法及系统 |
CN111061747A (zh) * | 2019-12-11 | 2020-04-24 | 金蝶软件(中国)有限公司 | 业务单据数据的更新方法及相关设备 |
CN111061747B (zh) * | 2019-12-11 | 2023-08-29 | 金蝶软件(中国)有限公司 | 业务单据数据的更新方法及相关设备 |
CN111190913A (zh) * | 2019-12-30 | 2020-05-22 | 联动优势(北京)数字科技有限公司 | 一种分布式锁实现方法及系统 |
CN111124697A (zh) * | 2020-01-02 | 2020-05-08 | 中国航空工业集团公司西安航空计算技术研究所 | 面向分布式平台的任务同步和执行方法 |
CN111124697B (zh) * | 2020-01-02 | 2023-09-08 | 中国航空工业集团公司西安航空计算技术研究所 | 面向分布式平台的任务同步和执行方法 |
CN113268357A (zh) * | 2021-07-20 | 2021-08-17 | 国网汇通金财(北京)信息科技有限公司 | 用于批处理的分布式锁处理方法、装置及系统 |
Also Published As
Publication number | Publication date |
---|---|
CN106572130B (zh) | 2020-10-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106572130A (zh) | 用于实现分布式锁管理的方法和设备 | |
EP3479546B1 (en) | Data management microservice in a microservice domain | |
CN1852094B (zh) | 网络业务应用账户的保护方法和系统 | |
CN108184233B (zh) | 一种号码携带方法及系统 | |
EP3493485B1 (en) | Method, apparatus and system for notification | |
JP6764796B2 (ja) | ロボット制御システムおよびロボット制御方法 | |
CN107079041A (zh) | 文件信誉评估 | |
CN108769931B (zh) | 一种机器通信中群组管理的方法和装置 | |
CN109493055A (zh) | 基于区块链的入网区块链设备、数据处理方法及装置 | |
KR102152741B1 (ko) | 액세스 포인트를 스위칭하기 위한 방법 및 디바이스 | |
WO2016003134A1 (ko) | 무선 통신 시스템에서 요청 메시지를 처리하기 위한 방법 및 이를 위한 장치 | |
CN110167080A (zh) | 订阅信息更新的方法及装置 | |
CN114765623A (zh) | 一种订阅信息的方法、分发信息的方法及装置 | |
JP5447722B1 (ja) | 情報処理システム及びプログラム | |
US9237206B2 (en) | Method and apparatus for updating personal information in communication system | |
CN110071964A (zh) | 文件同步方法、装置、文件共享网络、文件共系统及存储介质 | |
CN113660168A (zh) | 一种多中心研究数据的处理方法、装置和服务器 | |
CN110741617A (zh) | 资源更新方法、装置、计算机设备和存储介质 | |
CN104284297B (zh) | 一种资源迁移的方法、装置 | |
CN112752352B (zh) | 一种中间会话管理功能i-smf确定方法和设备 | |
JP5544521B2 (ja) | 状態管理方法、処理装置、および状態管理プログラム | |
CN107710793B (zh) | 一种定位方法及对应装置 | |
CN108337098A (zh) | 群管理、群数据管理方法和装置、群管理系统、存储介质 | |
JP6543715B2 (ja) | 自己編成ネットワーク機能の制御 | |
US9336261B2 (en) | Method and apparatus for updating personal information in communication system |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |