分布式锁协调方法、装置、设备及存储介质制造方法及图纸

技术编号:30834010 阅读:26 留言:0更新日期:2021-11-18 12:55
本申请提供一种分布式锁协调方法、装置、设备及存储介质,涉及数据处理技术领域。该方法包括:若检测到主节点与预设业务类型节点下的集群节点断连,则由集群节点下的多个从节点,在所述集群节点下竞争创建状态节点;确定所述多个从节点中成功创建所述状态节点的目标从节点为新的主节点;将所述新的主节点的节点信息回写到所述状态节点中,以指示所述新的主节点获取到分布式锁。相对于现有技术,避免了无法获取当前获取锁的主节点信息,不利于功能的扩展,并且上述被动抢锁的方式容错性较低的问题。的问题。的问题。

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


[0001]本申请涉及数据处理
,具体而言,涉及一种分布式锁协调方法、装置、设备及存储介质。

技术介绍

[0002]为了防止分布式系统中的多个进程之间相互干扰,我们需要一种分布式协调技术来对这些进程进行调度(如:Master

Worker模式)。而这个分布式协调技术的核心就是来实现这个分布式锁。
[0003]基于ZooKeeper实现分布式锁的方式一般为创建一个目录,线程A想获取锁就在该目录下创建临时顺序节点;随后各节点获取目录下所有的子节点,然后确定目录下是否存在比自己小的兄弟节点,如果不存在,则说明当前节点线程顺序号最小,则当前获得锁。
[0004]但是这样的处理方式无法获取当前获取锁的主节点信息,不利于功能的扩展,并且上述被动抢锁的方式容错性较低。

技术实现思路

[0005]本申请的目的在于,针对上述现有技术中的不足,提供一种分布式锁协调方法、装置、设备及存储介质,以解决现有技术中无法获取当前获取锁的主节点信息,不利于功能的扩展,并且上述被动抢锁的方式容错性较低的问题。
[0006]为实现上述目的,本申请实施例采用的技术方案如下:第一方面,本申请一实施例提供了一种分布式锁协调方法,所述方法包括:若检测到主节点与预设业务类型节点下的集群节点断连,则由集群节点下的多个从节点,在所述集群节点下竞争创建状态节点;确定所述多个从节点中成功创建所述状态节点的目标从节点为新的主节点;将所述新的主节点的节点信息回写到所述状态节点中,以指示所述新的主节点获取到分布式锁。
[0007]可选地,所述由集群节点下的多个从节点在所述集群节点下竞争创建状态节点之前,所述方法还包括:所述多个从节点在监听到所述主节点断连的情况下,等待预设获取时延之后在所述集群节点下竞争创建所述状态节点。
[0008]可选地,所述方法还包括:所述主节点在触发所述断连之后的所述预设获取时延内,在所述集群节点下重新创建所述状态节点。
[0009]可选地,所述方法还包括:若所述主节点重新创建所述状态节点失败,则所述主节点将状态从主节点更新为从节点。
[0010]可选地,所述由集群节点下的多个从节点在所述集群节点下竞争创建状态节点之
前,所述方法还包括:所述主节点与预设业务类型节点下的集群节点断连后,触发主节点的状态节点删除事件,以指示所述多个从节点竞争创建状态节点。
[0011]可选地,所述方法还包括:所述多个从节点中创建失败的从节点继续监听所述主节点的状态节点删除事件。
[0012]可选地,所述若检测到主节点与预设业务类型节点下的集群节点断连,则由集群节点下的多个从节点在所述集群下竞争创建状态节点之前,所述方法还包括:所述集群节点下的多个节点竞争创建所述状态节点;确定所述多个节点中成功创建所述状态节点的应用节点为所述主节点,并将所述主节点的节点信息回写到所述状态节点中,以指示所述主节点获取到分布式锁。
[0013]可选地,所述由所述集群节点下的多个节点竞争创建所述状态节点之前,所述方法还包括:创建所述预设业务类型节点;基于所述预设业务类型节点创建所述集群节点,其中,所述预设业务类型节点和所述集群节点均为永久节点;将所述多个节点注册至所述集群节点下。
[0014]第二方面,本申请另一实施例提供了一种分布式锁协调装置,所述装置包括:创建模块,确定模块和回写模块,其中:所述创建模块,用于若检测到主节点与预设业务类型节点下的集群节点断连,则由集群节点下的多个从节点,在所述集群节点下竞争创建状态节点;所述确定模块,用于确定所述多个从节点中成功创建所述状态节点的目标从节点为新的主节点;所述回写模块,用于将所述新的主节点的节点信息回写到所述状态节点中,以指示所述新的主节点获取到分布式锁。
[0015]可选地,所述创建模块,具体用于所述多个从节点在监听到所述主节点断连的情况下,等待预设获取时延之后在所述集群节点下竞争创建所述状态节点。
[0016]可选地,所述创建模块,具体用于所述主节点在触发所述断连之后的所述预设获取时延内,在所述预设业务类型节点下重新创建所述状态节点。
[0017]可选地,所述装置还包括:更新模块,用于若所述主节点重新创建所述状态节点失败,则所述主节点将状态从主节点更新为从节点。
[0018]可选地,所述装置还包括:触发模块,用于所述主节点与预设业务类型节点下的集群节点断连后,触发主节点的状态节点删除事件,以指示所述多个从节点竞争创建状态节点。
[0019]可选地,所述装置还包括:监听模块,用于所述多个从节点中创建失败的从节点继续监听所述状态节点删除事件。
[0020]可选地,所述主节点和各所述从节点的节点信息分别包括:节点IP地址和端口信息。
[0021]可选地,所述创建模块,具体用于所述集群节点下的多个节点竞争创建所述状态节点;
所述确定模块,具体用于确定所述多个节点中成功创建所述状态节点的应用节点为所述主节点,并将所述主节点的节点信息回写到所述状态节点中,以指示所述主节点获取到分布式锁。
[0022]可选地,所述装置还包括:注册模块,其中:所述创建模块,具体用于创建所述预设业务类型节点;基于所述预设业务类型节点创建所述集群节点,其中,所述预设业务类型节点和所述集群节点均为永久节点;所述注册模块,具体用于将所述多个节点注册至所述集群节点下。
[0023]第三方面,本申请另一实施例提供了一种分布式锁协调设备,包括:处理器、存储介质和总线,所述存储介质存储有所述处理器可执行的机器可读指令,当分布式锁协调设备运行时,所述处理器与所述存储介质之间通过总线通信,所述处理器执行所述机器可读指令,以执行如上述第一方面任一所述方法的步骤。
[0024]第四方面,本申请另一实施例提供了一种存储介质,所述存储介质上存储有计算机程序,所述计算机程序被处理器运行时执行如上述第一方面任一所述方法的步骤。
[0025]本申请的有益效果是:采用本申请提供的分布式锁协调方法,在检测到主节点与集群节点断连后,与主节点同一集群节点下的其他从节点随即在集群节点下竞争创建状态节点,并确定创建成功的目标从节点为新的主节点,并将新的主节点的节点信息写入状态节点中,以指示新的主节点获取到了分布式锁,这样的方法主节点的设置是各从节点在主节点与集群节点断连后,主动发起的获取,并且在新的主节点获取成功后会将新的主节点的信息回写至状态节点中,有利于后续功能的扩展,和提高容错,便于可以直接根据状态节点确定当前获取到分布式锁的主节点。
附图说明
[0026]为了更清楚地说明本申请实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本申请的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
[0027]图1为本申请一实施例提供的Zo本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种分布式锁协调方法,其特征在于,所述方法包括:若检测到主节点与预设业务类型节点下的集群节点断连,则由集群节点下的多个从节点,在所述集群节点下竞争创建状态节点;确定所述多个从节点中成功创建所述状态节点的目标从节点为新的主节点;将所述新的主节点的节点信息回写到所述状态节点中,以指示所述新的主节点获取到分布式锁。2.如权利要求1所述的方法,其特征在于,所述由集群节点下的多个从节点在所述集群节点下竞争创建状态节点之前,所述方法还包括:所述多个从节点在监听到所述主节点断连的情况下,等待预设获取时延之后在所述集群节点下竞争创建所述状态节点。3.如权利要求2所述的方法,其特征在于,所述方法还包括:所述主节点在触发所述断连之后的所述预设获取时延内,在所述集群节点下重新创建所述状态节点。4.如权利要求3所述的方法,其特征在于,所述方法还包括:若所述主节点重新创建所述状态节点失败,则所述主节点将状态从主节点更新为从节点。5.如权利要求1所述的方法,其特征在于,所述由集群节点下的多个从节点在所述集群节点下竞争创建状态节点之前,所述方法还包括:所述主节点与预设业务类型节点下的集群节点断连后,触发主节点的状态节点删除事件,以指示所述多个从节点竞争创建状态节点。6.如权利要求5所述的方法,其特征在于,所述方法还包括:所述多个从节点中创建失败的从节点继续监听所述主节点的状态节点删除事件。7.如权利要求1所述的方法,其特征在于,所述若检测到主节点与预设业务类型节点下的集群节点断连,则由集群节点下的多个从节点在所述集群下竞争创建状态节点之前,所述方法还包括...

【专利技术属性】
技术研发人员:胡思豹张良友秦元马骋原赵盛璐
申请(专利权)人:恒生电子股份有限公司
类型:发明
国别省市:

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

1