一种分布式节点ID生成方法、装置、设备及存储介质制造方法及图纸

技术编号:31012288 阅读:15 留言:0更新日期:2021-11-30 00:41
本申请公开了一种分布式节点ID生成方法、装置、电子设备及计算机可读存储介质,该方法包括:若检测到服务启动,则确定机器ID对应的第一长度与机房ID对应的第二长度;通过中心栈与数据池进行通信,得到数据池提供的目标ID基数;目标ID基数为唯一ID基数;利用目标ID基数、第一长度和第二长度,生成机器ID和机房ID;利用机器ID和机房ID生成服务对应的分布式节点ID;该方法自动生成机器ID和机房ID,无需人工配置,生成机器ID和机房ID的目标ID基数为唯一ID基数,各个节点均不相同,而各个节点的第一长度和第二长度均相同,因此生成的分布式节点ID必然不同,不会出现ID碰撞的问题。不会出现ID碰撞的问题。不会出现ID碰撞的问题。

【技术实现步骤摘要】
一种分布式节点ID生成方法、装置、设备及存储介质


[0001]本申请涉及分布式系统
,特别涉及一种分布式节点ID生成方法、分布式节点ID生成装置、电子设备及计算机可读存储介质。

技术介绍

[0002]在分布式环境中,各个节点需要具有全局唯一ID(Identity document,身份标识),以便利用其表征自身的身份,例如采用雪花算法生成全局唯一ID。在采用雪花算法生成全局唯一ID时,需要加入工作机器ID,而工作机器ID需要人工手动配置,手工配置的工作机器ID的过程一旦出现失误,则可能会导致出现ID碰撞的问题,进而导致分布式集群运行出现异常。

技术实现思路

[0003]有鉴于此,本申请的目的在于提供一种分布式节点ID生成方法、分布式节点ID生成装置、电子设备及计算机可读存储介质,生成的分布式节点ID必然不同,不会出现ID碰撞的问题。
[0004]为解决上述技术问题,本申请提供了一种分布式节点ID生成方法,包括:若检测到服务启动,则确定机器ID对应的第一长度与机房ID对应的第二长度;通过中心栈与数据池进行通信,得到所述数据池提供的目标ID基数;所述目标ID基数为唯一ID基数;利用所述目标ID基数、所述第一长度和所述第二长度,生成所述机器ID和所述机房ID;利用所述机器ID和所述机房ID生成所述服务对应的分布式节点ID。
[0005]可选地,所述通过中心栈与数据池进行通信,得到所述数据池提供的目标ID基数,包括:生成获取请求,并将所述获取请求发送至所述中心栈,以便所述中心栈确定不存在所述获取请求对应的ID信息时,从所述数据池中获取一个候选ID基数作为所述目标ID基数,并建立所述目标ID基数与所述获取请求之间的目标ID信息;获取所述中心栈发送的所述目标ID基数。
[0006]可选地,所述数据池具有中心事务锁,所述将所述获取请求发送至所述中心栈,以便所述中心栈确定不存在所述获取请求对应的ID信息时,从所述数据池中获取一个候选ID基数作为所述目标ID基数,包括:将所述获取请求发送至所述中心栈,以便所述中心栈确定不存在所述获取请求对应的ID信息时,获取中心事务锁锁定所述数据池,从所述数据池中获取一个候选ID基数作为所述目标ID基数后,释放所述中心事务锁。
[0007]可选地,所述利用所述目标ID基数、所述第一长度和所述第二长度,生成所述机器ID和所述机房ID,包括:
利用所述目标ID基数除以所述第一长度,得到所述机器ID;利用所述目标ID基数进行基于所述第二长度的取余计算,得到所述机房ID。
[0008]可选地,所述利用所述机器ID和所述机房ID生成所述服务对应的分布式节点ID,包括:获取时间戳数据,并利用所述时间戳数据、所述机器ID和所述机房ID生成所述分布式节点ID。
[0009]可选地,所述确定机器ID对应的第一长度与机房ID对应的第二长度,包括:利用递归算法,对数据位长度进行拆分,得到所述第一长度和所述第二长度。
[0010]可选地,在通过中心栈与数据池进行通信,得到所述数据池提供的目标ID基数之前,还包括:创建所述中心栈,并在所述中心栈中创建所述数据池;在所述数据池中设置多个互不相同的唯一ID基数作为候选ID基数。
[0011]本申请还提供了一种分布式节点ID生成装置,包括:长度确定模块,用于若检测到服务启动,则确定机器ID对应的第一长度与机房ID对应的第二长度;基数获取模块,用于通过中心栈与数据池进行通信,得到所述数据池提供的目标ID基数;所述目标ID基数为唯一ID基数;第一生成模块,用于利用所述目标ID基数、所述第一长度和所述第二长度,生成所述机器ID和所述机房ID;第二生成模块,用于利用所述机器ID和所述机房ID生成所述服务对应的分布式节点ID。
[0012]本申请还提供了一种电子设备,包括存储器和处理器,其中:所述存储器,用于保存计算机程序;所述处理器,用于执行所述计算机程序,以实现上述的分布式节点ID生成方法。
[0013]本申请还提供了一种计算机可读存储介质,用于保存计算机程序,其中,所述计算机程序被处理器执行时实现上述的分布式节点ID生成方法。
[0014]本申请提供的分布式节点ID生成方法,若检测到服务启动,则确定机器ID对应的第一长度与机房ID对应的第二长度;通过中心栈与数据池进行通信,得到数据池提供的目标ID基数;目标ID基数为唯一ID基数;利用目标ID基数、第一长度和第二长度,生成机器ID和机房ID;利用机器ID和机房ID生成服务对应的分布式节点ID。
[0015]可见,该方法在检测到服务启动后,确定需要为该服务分配分布式节点ID。通过确定机器ID对应的第一长度和机房ID对应的第二长度,可以为后续生成机器ID和机房ID提供基础。本申请中,创建了中心栈,该中心栈中具有数据池,数据池能够提供生成机器ID和机房ID所需的基数,即目标ID基数。目标ID基数为唯一ID基数,即数据池为不同的节点提供不同的目标ID基数。节点在获取到唯一ID基数后,利用其与第一长度和第二长度生成机器ID和机房ID,进而利用机器ID和机房ID生成分布式节点ID。该方法可以自动生成机器ID和机房ID,无需人工配置,生成机器ID和机房ID的目标ID基数为唯一ID基数,各个节点均不相同,而各个节点的第一长度和第二长度均相同,因此生成的分布式节点ID必然不同,不会出现ID碰撞的问题。
[0016]此外,本申请还提供了一种分布式节点ID生成装置、电子设备及计算机可读存储介质,同样具有上述有益效果。
附图说明
[0017]为了更清楚地说明本申请实施例或相关技术中的技术方案,下面将对实施例或相关技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
[0018]图1为本申请实施例提供的一种分布式节点ID生成方法流程图;图2为本申请实施例提供的一种分布式节点ID生成装置的结构示意图;图3为本申请实施例提供的一种电子设备的结构示意图。
具体实施方式
[0019]为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
[0020]请参考图1,图1为本申请实施例提供的一种分布式节点ID生成方法流程图。该方法包括:S101:若检测到服务启动,则确定机器ID对应的第一长度与机房ID对应的第二长度。
[0021]服务,是指需要利用分布式节点ID执行业务的分布式服务。若检测到服务启动,则说明本分布式节点需要获取分布式节点ID并利用其运行服务,生成分布式节点ID首先需要确定生成机器ID和机房ID。机器ID和机房ID在服分布式节点ID本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种分布式节点ID生成方法,其特征在于,包括:若检测到服务启动,则确定机器ID对应的第一长度与机房ID对应的第二长度;通过中心栈与数据池进行通信,得到所述数据池提供的目标ID基数;所述目标ID基数为唯一ID基数;利用所述目标ID基数、所述第一长度和所述第二长度,生成所述机器ID和所述机房ID;利用所述机器ID和所述机房ID生成所述服务对应的分布式节点ID。2.根据权利要求1所述的分布式节点ID生成方法,其特征在于,所述通过中心栈与数据池进行通信,得到所述数据池提供的目标ID基数,包括:生成获取请求,并将所述获取请求发送至所述中心栈,以便所述中心栈确定不存在所述获取请求对应的ID信息时,从所述数据池中获取一个候选ID基数作为所述目标ID基数,并建立所述目标ID基数与所述获取请求之间的目标ID信息;获取所述中心栈发送的所述目标ID基数。3.根据权利要求2所述的分布式节点ID生成方法,其特征在于,所述数据池具有中心事务锁,所述将所述获取请求发送至所述中心栈,以便所述中心栈确定不存在所述获取请求对应的ID信息时,从所述数据池中获取一个候选ID基数作为所述目标ID基数,包括:将所述获取请求发送至所述中心栈,以便所述中心栈确定不存在所述获取请求对应的ID信息时,获取中心事务锁锁定所述数据池,从所述数据池中获取一个候选ID基数作为所述目标ID基数后,释放所述中心事务锁。4.根据权利要求1所述的分布式节点ID生成方法,其特征在于,所述利用所述目标ID基数、所述第一长度和所述第二长度,生成所述机器ID和所述机房ID,包括:利用所述目标ID基数除以所述第一长度,得到所述机器ID;利用所述目标ID基数进行基于所述第二长度的取余计算,得到所述机房ID...

【专利技术属性】
技术研发人员:李政军陈娅芳
申请(专利权)人:湖南新云网科技有限公司
类型:发明
国别省市:

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

1