CN113708983A - 一种分布式节点id生成方法、装置、设备及存储介质 - Google Patents
一种分布式节点id生成方法、装置、设备及存储介质 Download PDFInfo
- Publication number
- CN113708983A CN113708983A CN202111279461.3A CN202111279461A CN113708983A CN 113708983 A CN113708983 A CN 113708983A CN 202111279461 A CN202111279461 A CN 202111279461A CN 113708983 A CN113708983 A CN 113708983A
- Authority
- CN
- China
- Prior art keywords
- target
- length
- machine
- base number
- distributed node
- 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
Images
Classifications
-
- 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/08—Configuration management of networks or network elements
- H04L41/0803—Configuration setting
- H04L41/0806—Configuration setting for initial configuration or provisioning, e.g. plug-and-play
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Mobile Radio Communication Systems (AREA)
Abstract
本申请公开了一种分布式节点ID生成方法、装置、电子设备及计算机可读存储介质,该方法包括:若检测到服务启动,则确定机器ID对应的第一长度与机房ID对应的第二长度;通过中心栈与数据池进行通信,得到数据池提供的目标ID基数;目标ID基数为唯一ID基数;利用目标ID基数、第一长度和第二长度,生成机器ID和机房ID;利用机器ID和机房ID生成服务对应的分布式节点ID;该方法自动生成机器ID和机房ID,无需人工配置,生成机器ID和机房ID的目标ID基数为唯一ID基数,各个节点均不相同,而各个节点的第一长度和第二长度均相同,因此生成的分布式节点ID必然不同,不会出现ID碰撞的问题。
Description
技术领域
本申请涉及分布式系统技术领域,特别涉及一种分布式节点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对应的第二长度,包括:
利用递归算法,对数据位长度进行拆分,得到所述第一长度和所述第二长度。
可选地,在通过中心栈与数据池进行通信,得到所述数据池提供的目标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的目标ID基数为唯一ID基数,各个节点均不相同,而各个节点的第一长度和第二长度均相同,因此生成的分布式节点ID必然不同,不会出现ID碰撞的问题。
此外,本申请还提供了一种分布式节点ID生成装置、电子设备及计算机可读存储介质,同样具有上述有益效果。
附图说明
为了更清楚地说明本申请实施例或相关技术中的技术方案,下面将对实施例或相关技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为本申请实施例提供的一种分布式节点ID生成方法流程图;
图2为本申请实施例提供的一种分布式节点ID生成装置的结构示意图;
图3为本申请实施例提供的一种电子设备的结构示意图。
具体实施方式
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
请参考图1,图1为本申请实施例提供的一种分布式节点ID生成方法流程图。该方法包括:
S101:若检测到服务启动,则确定机器ID对应的第一长度与机房ID对应的第二长度。
服务,是指需要利用分布式节点ID执行业务的分布式服务。若检测到服务启动,则说明本分布式节点需要获取分布式节点ID并利用其运行服务,生成分布式节点ID首先需要确定生成机器ID和机房ID。机器ID和机房ID在服分布式节点ID中占据一定位数,在生成之前,需要确定机器ID和机房ID的具体长度,即具体占据的位数。
本实施例并不限定确定机器ID和机房ID的长度的具体方式,例如在一种实施方式中,可以预先设定第一长度和第二长度的具体大小,在检测到服务启动后,通过读取预设的文件或数据确定第一长度和第二长度。在另一种实施方式中,可以利用递归算法,对数据位长度进行拆分,得到第一长度和第二长度。具体的,可以将数据位长度定义为k,随机取拆分递归算法得到得数据集中的机房id长度(即第二长度)n-m,机器ID长度m,其中递归算法具体实现为f(x)= Dynamics(value,ans,min),其中min是n、m的最小值限制,ans是递归深度,value为当前递归值。Dynamics具体实现步骤如下:
Dynamics步骤1:初始化数据集result,当前递归值为k,当前递归深度值为1,当前最小值限制为2,初始化临时值集合temp,并将临时值集合中的元素全部赋值为0。
Dynamics步骤2:判断ans是否大于1,若是,结束当前递归。
Dynamics步骤3:开启循环1至value/2,定义循环值为i,判断i是否大于temp[ans-1],且是否大于min,若满足,则temp[ans] = i,temp[ans+1] = value-i,数据集result新增组合(temp[1], temp[2]),赋值当前递归值为value-i,当前递归深度值为ans+1,当前最小值限制为2,重复Dynamics步骤2。
S102:通过中心栈与数据池进行通信,得到数据池提供的目标ID基数。
在确定第一长度和第二长度后,或者确定服务启动后,可以从数据池中获取目标ID基数。需要说明的是,目标ID基数为唯一ID基数,即数据池每次提供的目标ID基数都不相同。
中心栈提供统一的数据输入、输出、存储,其可以包含原始仓库、仓库连接池、数据处理中心、数据池、中心事务锁等。其中,原始仓库,包含但不限于Mysql数据库、Redis等。仓库连接池,存储对原始仓库操作的句柄。数据处理中心,使用仓库连接池,对不同仓库的数据进行打包、处理、分析并进行归一化处理形成统一格式的数据。数据池,包含不同数据结构的数据体,包含但不限于队列、集合、链表等。
可以理解的是,在从数据池中获取目标ID基数前,需要构建数据池,因此在通过中心栈与数据池进行通信,得到数据池提供的目标ID基数之前,还可以包括:
步骤11:创建中心栈,并在中心栈中创建数据池。
步骤12:在数据池中设置多个互不相同的唯一ID基数作为候选ID基数。
由于数据池应当向各个分布式节点提供不同的目标ID基数,因此在创建数据池后,在其中设置多个互不相同的唯一ID基数作为候选ID基数,即数据池中存储的候选ID基数均不相同。
需要说明的是,每个分布式节点的分布式节点ID应当固定不变,因此数据池只会为没有分布式ID的分布式节点发送目标ID基数。具体的,通过中心栈与数据池进行通信,得到数据池提供的目标ID基数的过程可以包括:
步骤21:生成获取请求,并将获取请求发送至中心栈,以便中心栈确定不存在获取请求对应的ID信息时,从数据池中获取一个候选ID基数作为目标ID基数,并建立目标ID基数与获取请求之间的目标ID信息。
步骤22:获取中心栈发送的目标ID基数。
ID信息,是指分布式节点发送的获取请求是否具有分布式节点ID,若不存在对应的目标ID信息,则说明发出该获取请求的分布式节点不具有分布式节点ID,因此从数据池中提取一个候选ID基数作为目标ID基数,并将该候选ID基数从数据池中删除。此外,还应当建立目标ID基数与获取请求之间的目标ID信息,以便后续查验。
更进一步的,分布式集群结构导致对数据池的访问可能会并发出现,即多个分布式节点同时请求获取目标ID基数。为了避免向多个分布式节点发送相同的目标ID基数,数据池应当具有中心事务锁。在这种情况下,将获取请求发送至中心栈,以便中心栈确定不存在获取请求对应的ID信息时,从数据池中获取一个候选ID基数作为目标ID基数的过程可以包括:
步骤31:将获取请求发送至中心栈,以便中心栈确定不存在获取请求对应的ID信息时,获取中心事务锁锁定数据池,从数据池中获取一个候选ID基数作为目标ID基数后,释放中心事务锁。
具体的,中心事务锁是中心栈中的操作互斥锁。在中心栈中创建一个含锁的数据池,从数据池中获取得到的数据资源唯一。含锁的数据池,具体实现过程中,针对每一个类型的取数据行为,当发生数据并发时,获取中心事务锁,若未取到中心事务锁,则延时200ms后再次进行获取中心事务锁。若获取到中心事务锁,将判断该取数据行为是否有数据id的对应关系(即ID信息),若没有,数据池释放一个候选ID基数给该行为,并对该行为与数据id建立对应关系。若有,返回行为对应的候选ID基数。
S103:利用目标ID基数、第一长度和第二长度,生成机器ID和机房ID。
在得到目标ID基数后,利用其生成及其ID和机房ID。通常情况下,各个分布式节点的第一长度和第二长度均相同,而目标ID基数均不相同,因此根据其得到的机器ID和机房ID必然不相同。本实施例并不限定机器ID和机房ID的具体生成方式,在一种实施方式中,可以包括如下步骤:
步骤41:利用目标ID基数除以第一长度,得到机器ID。
步骤42:利用目标ID基数进行基于第二长度的取余计算,得到机房ID。
具体的,数据池中各个厚点ID基数的长度为n*(n-m),分布式节点从中心栈数据池获取的目标ID基数可以用d表示,第一长度为m,第二长度为n-m。则计算d/m得到m位的机器ID,计算d%(n-m)得到(n-m)位的机房ID。
S104:利用机器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生成方法可相互对应参照。
请参考图2,图2为本申请实施例提供的一种分布式节点ID生成装置的结构示意图,包括:
长度确定模块110,用于若检测到服务启动,则确定机器ID对应的第一长度与机房ID对应的第二长度;
基数获取模块120,用于通过中心栈与数据池进行通信,得到数据池提供的目标ID基数;目标ID基数为唯一ID基数;
第一生成模块130,用于利用目标ID基数、第一长度和第二长度,生成机器ID和机房ID;
第二生成模块140,用于利用机器ID和机房ID生成服务对应的分布式节点ID。
可选地,基数获取模块120,包括:
发送单元,用于生成获取请求,并将获取请求发送至中心栈,以便中心栈确定不存在获取请求对应的ID信息时,从数据池中获取一个候选ID基数作为目标ID基数,并建立目标ID基数与获取请求之间的目标ID信息;
获取单元,用于获取中心栈发送的目标ID基数。
可选地,数据池具有中心事务锁,发送单元,包括:
加锁子单元,用于将获取请求发送至中心栈,以便中心栈确定不存在获取请求对应的ID信息时,获取中心事务锁锁定数据池,从数据池中获取一个候选ID基数作为目标ID基数后,释放中心事务锁。
可选地,第一生成模块130,包括:
相除单元,用于利用目标ID基数除以第一长度,得到机器ID;
取余单元,用于利用目标ID基数进行基于第二长度的取余计算,得到机房ID。
可选地,第二生成模块140,包括:
时间戳单元,用于获取时间戳数据,并利用时间戳数据、机器ID和机房ID生成分布式节点ID。
可选地,长度确定模块110,包括:
递归拆分单元,用于利用递归算法,对数据位长度进行拆分,得到第一长度和第二长度。
可选地,还包括:
创建模块,用于创建中心栈,并在中心栈中创建数据池;
初始化模块,用于在数据池中设置多个互不相同的唯一ID基数作为候选ID基数。
下面对本申请实施例提供的电子设备进行介绍,下文描述的电子设备与上文描述的分布式节点ID生成方法可相互对应参照。
请参考图3,图3为本申请实施例提供的一种电子设备的结构示意图。其中电子设备100可以包括处理器101和存储器102,还可以进一步包括多媒体组件103、信息输入/信息输出(I/O)接口104以及通信组件105中的一种或多种。
其中,处理器101用于控制电子设备100的整体操作,以完成上述的分布式节点ID生成方法中的全部或部分步骤;存储器102用于存储各种类型的数据以支持在电子设备100的操作,这些数据例如可以包括用于在该电子设备100上操作的任何应用程序或方法的指令,以及应用程序相关的数据。该存储器102可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,例如静态随机存取存储器(Static Random Access Memory,SRAM)、电可擦除可编程只读存储器(Electrically Erasable Programmable Read-Only Memory,EEPROM)、可擦除可编程只读存储器(Erasable Programmable Read-Only Memory,EPROM)、可编程只读存储器(Programmable Read-Only Memory,PROM)、只读存储器(Read-OnlyMemory,ROM)、磁存储器、快闪存储器、磁盘或光盘中的一种或多种。
多媒体组件103可以包括屏幕和音频组件。其中屏幕例如可以是触摸屏,音频组件用于输出和/或输入音频信号。例如,音频组件可以包括一个麦克风,麦克风用于接收外部音频信号。所接收的音频信号可以被进一步存储在存储器102或通过通信组件105发送。音频组件还包括至少一个扬声器,用于输出音频信号。I/O接口104为处理器101和其他接口模块之间提供接口,上述其他接口模块可以是键盘,鼠标,按钮等。这些按钮可以是虚拟按钮或者实体按钮。通信组件105用于电子设备100与其他设备之间进行有线或无线通信。无线通信,例如Wi-Fi,蓝牙,近场通信(Near Field Communication,简称NFC),2G、3G或4G,或它们中的一种或几种的组合,因此相应的该通信组件105可以包括:Wi-Fi部件,蓝牙部件,NFC部件。
电子设备100可以被一个或多个应用专用集成电路(Application SpecificIntegrated Circuit,简称ASIC)、数字信号处理器(Digital Signal Processor,简称DSP)、数字信号处理设备(Digital Signal Processing Device,简称DSPD)、可编程逻辑器件(Programmable Logic Device,简称PLD)、现场可编程门阵列(Field ProgrammableGate Array,简称FPGA)、控制器、微控制器、微处理器或其他电子元件实现,用于执行上述实施例给出的分布式节点ID生成方法。
下面对本申请实施例提供的计算机可读存储介质进行介绍,下文描述的计算机可读存储介质与上文描述的分布式节点ID生成方法可相互对应参照。
本申请还提供一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序,计算机程序被处理器执行时实现上述的分布式节点ID生成方法的步骤。
该计算机可读存储介质可以包括:U盘、移动硬盘、只读存储器(Read-OnlyMemory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其它实施例的不同之处,各个实施例之间相同或相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
本领域技术人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件的方式来执行,取决于技术方案的特定应用和设计约束条件。本领域技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应该认为超出本申请的范围。
结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系属于仅仅用来将一个实体或者操作与另一个实体或者操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语包括、包含或者其他任何变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。
本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的一般技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。
Claims (10)
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。
5.根据权利要求1所述的分布式节点ID生成方法,其特征在于,所述利用所述机器ID和所述机房ID生成所述服务对应的分布式节点ID,包括:
获取时间戳数据,并利用所述时间戳数据、所述机器ID和所述机房ID生成所述分布式节点ID。
6.根据权利要求1所述的分布式节点ID生成方法,其特征在于,所述确定机器ID对应的第一长度与机房ID对应的第二长度,包括:
利用递归算法,对数据位长度进行拆分,得到所述第一长度和所述第二长度。
7.根据权利要求1所述的分布式节点ID生成方法,其特征在于,在通过中心栈与数据池进行通信,得到所述数据池提供的目标ID基数之前,还包括:
创建所述中心栈,并在所述中心栈中创建所述数据池;
在所述数据池中设置多个互不相同的唯一ID基数作为候选ID基数。
8.一种分布式节点ID生成装置,其特征在于,包括:
长度确定模块,用于若检测到服务启动,则确定机器ID对应的第一长度与机房ID对应的第二长度;
基数获取模块,用于通过中心栈与数据池进行通信,得到所述数据池提供的目标ID基数;所述目标ID基数为唯一ID基数;
第一生成模块,用于利用所述目标ID基数、所述第一长度和所述第二长度,生成所述机器ID和所述机房ID;
第二生成模块,用于利用所述机器ID和所述机房ID生成所述服务对应的分布式节点ID。
9.一种电子设备,其特征在于,包括存储器和处理器,其中:
所述存储器,用于保存计算机程序;
所述处理器,用于执行所述计算机程序,以实现如权利要求1至7任一项所述的分布式节点ID生成方法。
10.一种计算机可读存储介质,其特征在于,用于保存计算机程序,其中,所述计算机程序被处理器执行时实现如权利要求1至7任一项所述的分布式节点ID生成方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111279461.3A CN113708983B (zh) | 2021-11-01 | 2021-11-01 | 一种分布式节点id生成方法、装置、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111279461.3A CN113708983B (zh) | 2021-11-01 | 2021-11-01 | 一种分布式节点id生成方法、装置、设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113708983A true CN113708983A (zh) | 2021-11-26 |
CN113708983B CN113708983B (zh) | 2022-02-11 |
Family
ID=78647575
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111279461.3A Active CN113708983B (zh) | 2021-11-01 | 2021-11-01 | 一种分布式节点id生成方法、装置、设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113708983B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114363333A (zh) * | 2021-12-29 | 2022-04-15 | 胜斗士(上海)科技技术发展有限公司 | 分布式系统中分配机器id的方法、装置、设备与介质 |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1393158A1 (en) * | 2001-06-08 | 2004-03-03 | Concord Communications, Inc. | Interactive hierarchical status display |
CN106572165A (zh) * | 2016-10-26 | 2017-04-19 | 宜人恒业科技发展(北京)有限公司 | 一种分布式全局唯一id应用方法 |
CN107864233A (zh) * | 2017-11-08 | 2018-03-30 | 千寻位置网络有限公司 | 全局唯一id结构及生成方法 |
CN110287184A (zh) * | 2019-05-28 | 2019-09-27 | 必成汇(成都)科技有限公司 | 生成分布式唯一id的方法 |
CN110602158A (zh) * | 2019-07-24 | 2019-12-20 | 中国联合网络通信集团有限公司 | 全局唯一id生成系统与方法、id生成器与存储介质 |
CN110874209A (zh) * | 2018-09-03 | 2020-03-10 | 珠海横琴盛达兆业科技投资有限公司 | 一种生成分布式系统中唯一标识的方法 |
CN111083228A (zh) * | 2019-12-24 | 2020-04-28 | 腾讯云计算(北京)有限责任公司 | 标识号的生成方法、装置和电子设备 |
CN111611247A (zh) * | 2020-05-25 | 2020-09-01 | 山东健康医疗大数据有限公司 | 一种多域机房的id生成器及id生成方法 |
CN111831757A (zh) * | 2020-06-09 | 2020-10-27 | 时时同云科技(成都)有限责任公司 | 分布式全局唯一标识信息的生成和管理方法及装置 |
-
2021
- 2021-11-01 CN CN202111279461.3A patent/CN113708983B/zh active Active
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1393158A1 (en) * | 2001-06-08 | 2004-03-03 | Concord Communications, Inc. | Interactive hierarchical status display |
CN106572165A (zh) * | 2016-10-26 | 2017-04-19 | 宜人恒业科技发展(北京)有限公司 | 一种分布式全局唯一id应用方法 |
CN107864233A (zh) * | 2017-11-08 | 2018-03-30 | 千寻位置网络有限公司 | 全局唯一id结构及生成方法 |
CN110874209A (zh) * | 2018-09-03 | 2020-03-10 | 珠海横琴盛达兆业科技投资有限公司 | 一种生成分布式系统中唯一标识的方法 |
CN110287184A (zh) * | 2019-05-28 | 2019-09-27 | 必成汇(成都)科技有限公司 | 生成分布式唯一id的方法 |
CN110602158A (zh) * | 2019-07-24 | 2019-12-20 | 中国联合网络通信集团有限公司 | 全局唯一id生成系统与方法、id生成器与存储介质 |
CN111083228A (zh) * | 2019-12-24 | 2020-04-28 | 腾讯云计算(北京)有限责任公司 | 标识号的生成方法、装置和电子设备 |
CN111611247A (zh) * | 2020-05-25 | 2020-09-01 | 山东健康医疗大数据有限公司 | 一种多域机房的id生成器及id生成方法 |
CN111831757A (zh) * | 2020-06-09 | 2020-10-27 | 时时同云科技(成都)有限责任公司 | 分布式全局唯一标识信息的生成和管理方法及装置 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114363333A (zh) * | 2021-12-29 | 2022-04-15 | 胜斗士(上海)科技技术发展有限公司 | 分布式系统中分配机器id的方法、装置、设备与介质 |
CN114363333B (zh) * | 2021-12-29 | 2023-11-28 | 胜斗士(上海)科技技术发展有限公司 | 分布式系统中分配机器id的方法、装置、设备与介质 |
Also Published As
Publication number | Publication date |
---|---|
CN113708983B (zh) | 2022-02-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110737658B (zh) | 数据分片存储方法、装置、终端及可读存储介质 | |
CN111031110B (zh) | 一种文件上传方法、装置及电子设备和存储介质 | |
US11093232B2 (en) | Microservice update system | |
JP6626211B2 (ja) | ショートリンクを処理する方法及び装置並びにショートリンクサーバ | |
CN111736956B (zh) | 一种容器服务部署方法、装置、设备及可读存储介质 | |
CN109871289B (zh) | 一种远程过程调用rpc服务生成方法及装置 | |
CN113708983B (zh) | 一种分布式节点id生成方法、装置、设备及存储介质 | |
CN108776587B (zh) | 数据获取方法、装置、计算机设备以及存储介质 | |
CN107807841B (zh) | 服务器模拟方法、装置、设备及可读存储介质 | |
CN110717076A (zh) | 节点管理方法、装置、计算机设备及存储介质 | |
CN111290779A (zh) | 灰度发布方法、装置、存储介质和电子设备 | |
CN112055072A (zh) | 云端音频输入方法、装置、云系统、电子设备与存储介质 | |
CN111770174A (zh) | 一种云平台部署方法、装置、设备及可读存储介质 | |
CN111414619A (zh) | 一种数据安全检测方法、装置、设备及可读存储介质 | |
CN110673790A (zh) | 一种硬盘控制方法、装置及电子设备和存储介质 | |
CN108776665B (zh) | 一种数据处理方法及装置 | |
CN111708634B (zh) | 一种端口分配方法、装置、设备及可读存储介质 | |
CN112000630A (zh) | 一种日志存储方法、装置、设备及可读存储介质 | |
CN111147586A (zh) | 设备端控制方法、装置和会议系统 | |
CN111371851A (zh) | 一种连接方法、装置及电子设备和存储介质 | |
CN111124308A (zh) | 一种性能分析方法、装置及电子设备和存储介质 | |
KR20200046316A (ko) | 웹 어플리케이션 서버, 사용자 요청 처리 방법 및 통합 요청 처리 방법 | |
CN107122164B (zh) | 函数地址获取及应用其的方法、装置、设备及存储介质 | |
CN110928672A (zh) | 一种任务编排方法、装置、设备及存储介质 | |
CN112445790B (zh) | 一种报表数据存储方法、装置、设备及介质 |
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 |