[发明专利]一种分布式节点ID生成方法、装置、设备及存储介质有效
申请号: | 202111279461.3 | 申请日: | 2021-11-01 |
公开(公告)号: | CN113708983B | 公开(公告)日: | 2022-02-11 |
发明(设计)人: | 李政军;陈娅芳 | 申请(专利权)人: | 湖南新云网科技有限公司 |
主分类号: | H04L41/0806 | 分类号: | H04L41/0806 |
代理公司: | 北京集佳知识产权代理有限公司 11227 | 代理人: | 王洋 |
地址: | 410000 湖南省长沙市岳麓区岳*** | 国省代码: | 湖南;43 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 分布式 节点 id 生成 方法 装置 设备 存储 介质 | ||
本申请公开了一种分布式节点ID生成方法、装置、电子设备及计算机可读存储介质,该方法包括:若检测到服务启动,则确定机器ID对应的第一长度与机房ID对应的第二长度;通过中心栈与数据池进行通信,得到数据池提供的目标ID基数;目标ID基数为唯一ID基数;利用目标ID基数、第一长度和第二长度,生成机器ID和机房ID;利用机器ID和机房ID生成服务对应的分布式节点ID;该方法自动生成机器ID和机房ID,无需人工配置,生成机器ID和机房ID的目标ID基数为唯一ID基数,各个节点均不相同,而各个节点的第一长度和第二长度均相同,因此生成的分布式节点ID必然不同,不会出现ID碰撞的问题。
技术领域
本申请涉及分布式系统技术领域,特别涉及一种分布式节点ID生成方法、分布式节点ID生成装置、电子设备及计算机可读存储介质。
背景技术
在分布式环境中,各个节点需要具有全局唯一ID(Identity document,身份标识),以便利用其表征自身的身份,例如采用雪花算法生成全局唯一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基数作为所述目标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对应的第二长度,包括:
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于湖南新云网科技有限公司,未经湖南新云网科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202111279461.3/2.html,转载请声明来源钻瓜专利网。