首页  专利技术  电子电路装置的制造及其应用技术

标识的生成方法、装置、设备及存储介质与流程

2026-08-05 13:40:07 205次浏览
标识的生成方法、装置、设备及存储介质与流程

本技术涉及计算机,具体涉及一种标识的生成方法、装置、设备及存储介质。


背景技术:

1、在复杂的分布式系统架构中,需要对大量的数据和消息进行唯一标识。相关技术中,雪花算法是一种简单、高效、易于扩展的分布式标识的生成算法,适用于各种分布式系统场景,因此,可以利用雪花算法的思想,生成唯一标识,但雪花算法依赖系统时间,在发生时钟回拨的情况下,可能会导致生成的标识出现重复或乱序的问题。


技术实现思路

1、本技术提供一种标识的生成方法、装置、设备及存储介质,以解决现有技术不能实现在发生时钟回拨的情况下无法生成唯一的标识的问题。

2、本技术采用的技术方案如下:

3、一种标识的生成方法,所述生成方法包括:

4、响应于所述标识的生成请求,获取预设的基础时间以及与所述生成请求中目标应用对应的机器标识;将当前时间与所述基础时间之间的差值,确定为所述标识对应的时间戳;在所述时间戳小于参考时间戳的情况下,获取当前的第一序列号;所述当前的第一序列号为上一标识对应的第一序列号递增后得到的;所述参考时间戳为上一标识对应的时间戳;将所述参考时间戳、所述机器标识,以及所述当前的第一序列号进行合并,得到所述标识。

5、根据上述技术手段,首先,接收到标识的生成请求,获取生成请求中目标应用对应的机器标识、预设的基础时间、与上一标识对应的参考时间戳;其次,在当前时间和基础时间之间的差值小于参考时间戳的情况下,说明发生了时钟回拨,因此,将上一标识对应的第一序列号递增后得到的序列号作为当前的第一序列号,最后,将参考时间戳参考时间戳、机器标识、当前的第一序列号合并起来得到标识。这样,在时间戳小于参考时间戳的情况下,通过预留的第一序列号使得生成的标识具有唯一性,并且这种方法实现简单,不依赖第三方。

6、进一步,所述将所述参考时间戳、所述机器标识,以及所述当前的第一序列号进行合并,得到所述标识,包括:将所述参考时间戳左移第一比特数;所述第一比特数为所述机器标识所占比特数和所述当前的第一序列号所占比特数之和;将所述机器标识左移第二比特数;所述第二比特数为所述当前的第一序列号所占比特数;将所述参考时间戳、所述机器标识,以及所述当前的第一序列号按位进行或操作,确定所述标识。

7、根据上述技术手段,首先将参考时间戳左移机器标识所占比特数和当前的第一序列号所占比特数之和,为机器标识和当前的第一序列号腾出位置;其次,将机器标识左移当前的第一序列号所占比特数,为当前的第一序列号腾出位置;最后,将左移后的参考时间戳和当前的第一序列号,以及当前的第一序列号进行按位或操作,即将参考时间戳、机器标识和当前的第一序列号组合起来,得到标识。这样,通过将需要放在较高比特位的部分左移对应的比特数的方式,将参考时间戳、机器标识和当前的第一序列号依次组合为一个二进制的比特数。

8、进一步,所述方法还包括:在所述时间戳大于所述参考时间戳的情况下,将预设的最小第二序列号确定为第二序列号;将所述时间戳、所述机器标识,以及所述第二序列号进行合并,得到所述标识。

9、根据上述技术手段,在时间戳大于参考时间戳的情况下,说明未发生时钟回拨的情况,且与上一标识不在同一毫秒内生成,因此,将第二序列号重置为预设的最小第二序列号,从头开始递增第二序列号,并将时间戳、机器标识,以及第二序列号进行合并,得到标识。这样,在时间戳大于参考时间戳的情况下,即在没有发生时钟回拨,当前时间与上一标识的生成时间不在同一毫秒内的情况下,将第二序列号重置为预设的最小第二序列号,使得在同一毫秒内第二序列号具有唯一性。

10、进一步,在所述时间戳等于所述参考时间戳的情况下,所述方法还包括:获取当前的第二序列号;所述当前的第二序列号为上一标识对应的第二序列号递增后得到的;在所述当前的第二序列号小于或等于最大第二序列号的情况下,将所述时间戳、所述机器标识、所述当前的第二序列号进行合并,得到所述标识;所述最大第二序列号是基于预设的最小第二序列号和所述当前的第二序列号所占比特数确定的。

11、根据上述技术手段,在时间戳等于参考时间戳的情况下,说明与上一标识在同一毫秒内生成,因此,首先需要将上一标识对应的第二序列号递增后得到当前的第二序列号;其次,根据第二序列号所占的比特数确定最大第二序列号;最后,在当前的第二序列号不大于最大第二序列号的情况下,将时间戳、机器标识、当前的第二序列号进行合并,得到标识。这样,将同一毫秒内生成的标识的第二序列号进行递增,使得得到的最终的标识具有唯一性。

12、进一步,所述方法还包括:在所述当前的第二序列号大于所述最大第二序列号的情况下,将所述时间戳进行递增,并将所述时间戳赋值给所述参考时间戳;将所述预设的最小第二序列号确定为当前的第二序列号;将所述时间戳、所述机器标识,以及所述当前的第二序列号进行合并,得到所述标识。

13、根据上述技术手段,在当前的第二序列号大于最大第二序列号的情况下,需要借用下一毫秒的第二序列号,将当前的第二序列号重新开始递增,因此,首先需要将时间戳进行递增,并将时间戳赋值给参考时间戳,其次,将最小第二序列号赋值给当前的第二序列号;最后,将时间戳、机器标识和当前的第二序列号合并起来,得到最终的标识。这样,在当前的第二序列号大于最大第二序列号的情况下,借用下一毫秒的第二序列号重新开始递增,使得得到的最终的标识具有唯一性。

14、进一步,所述方法还包括:获取所述预设的最小第二序列号;基于所述当前的第二序列号所占位比特数和所述最小第二序列号,确定所述第二序列号对应的最大第二序列号。

15、根据上述技术手段,根据当前的第二序列号所占比特数和预设的最小第二序列号,确定当前的第二序列号对应的最大第二序列号。这样,在当前的第二序列号递增到最大第二序列号时,不继续递增,限制了同一毫秒内第二序列号的个数,从而可以控制标识的长度。

16、进一步,所述方法还包括:响应于所述目标应用的启动,读取与所述目标应用对应的配置文件;所述配置文件中包括所述基础时间、所述目标应用对应的机器标识、所述预设的最小第二序列号、所述机器标识所占比特数和所述序列号所占比特数。

17、根据上述技术手段,在目标应用启动时,读取配置文件中的基础时间、目标应用对应的机器标识、预设的最小第二序列号、机器标识所占比特数和序列号所占比特数。这样,提前获取到读取配置文件中的参数,为之后的需要生成标识时,标识的生成请求的发送,以及后续的标识的生成提供配置信息。

18、一种标识的生成装置,所述生成装置包括:

19、第一获取模块,用于响应于所述标识的生成请求,获取预设的基础时间以及与所述生成请求中目标应用对应的机器标识;

20、第一确定模块,用于将当前时间与所述基础时间之间的差值,确定为所述标识对应的时间戳;

21、第二获取模块,用于在所述时间戳小于参考时间戳的情况下,获取当前的第一序列号;所述当前的第一序列号为上一标识对应的第一序列号递增后得到的;所述参考时间戳为上一标识对应的时间戳;

22、第一合并模块,用于将所述参考时间戳、所述机器标识,以及所述当前的第一序列号进行合并,得到所述标识。

23、一种计算机设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述生成方法中的步骤。

24、一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述生成方法中的步骤。

文档序号 : 【 40201837 】

技术研发人员:马豪,李杰,刘俊杰
技术所有人:重庆长安科技有限责任公司

备 注:该技术已申请专利,仅供学习研究,如用于商业用途,请联系技术所有人。
声 明此信息收集于网络,如果你是此专利的发明人不想本网站收录此信息请联系我们,我们会在第一时间删除
马豪李杰刘俊杰重庆长安科技有限责任公司
避雷设备及雷电信号分析方法与流程 一种用于固定角焊缝试样的落锤试验夹具的制作方法
相关内容