System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind() 一种分布式唯一ID生成方法、系统、设备及介质技术方案_技高网

一种分布式唯一ID生成方法、系统、设备及介质技术方案

技术编号:44880005 阅读:4 留言:0更新日期:2025-04-08 00:18
本发明专利技术公开了一种分布式唯一ID生成方法、系统、设备及介质,包括:初始化系统参数;获取系统当前时间戳;生成序列号;根据初始化系统参数、当前时间戳及所述序列号生成分布式唯一ID,该方法、系统、设备及介质能够生成高效、全局唯一且时间有序的ID。

【技术实现步骤摘要】

本专利技术属于分布式系统,涉及一种分布式唯一id生成方法、系统、设备及介质。


技术介绍

1、在分布式系统中,各节点通常需要生成全局唯一的id以标识数据记录或事务事件。现有技术中,常见的唯一id生成方法包括数据库自增主键、uuid等。然而,数据库自增主键会造成性能瓶颈,且不适用于高并发场景;uuid尽管能确保全局唯一性,但长度较长且不具备时间有序性,不便于数据库索引优化。因此,如何设计一种高效、全局唯一且时间有序的id生成方法,成为分布式系统设计中的关键问题。


技术实现思路

1、本专利技术的目的在于克服上述现有技术的缺点,提供了一种分布式唯一id生成方法、系统、设备及介质,该方法、系统、设备及介质能够生成高效、全局唯一且时间有序的id。

2、为达到上述目的,本专利技术公开了一种分布式唯一id生成方法,包括:

3、初始化系统参数;

4、获取系统当前时间戳;

5、生成序列号;

6、根据初始化系统参数、当前时间戳及所述序列号生成分布式唯一id。

7、本专利技术所述分布式唯一id生成方法的进一步改进在于:

8、进一步的,所述初始化系统参数的操作过程为:

9、确定纪元时间twepoch;

10、配置数据中心iddatacenterid及机器idworkerid;

11、初始化序列号;

12、定义偏移量。

13、进一步的,所述获取当前时间戳的过程为:p>

14、调用系统函数获取当前时间戳;

15、判断获取的当前时间戳的有效性,当获取的当前时间戳无效是,则抛弃该当前时间戳,重新调用系统函数获取当前时间戳。

16、进一步的,所述生成序列号的过程为:

17、判断timestamplasttimestamp是否在同一毫秒内,当timestamplasttimestamp在同一毫秒内时,则在当前序列号的基础上加1;当timestamplasttimestamp不在同一毫秒内时,则重置序列号为0,并更新时间戳;

18、序列号超过最大值时,则阻塞等待下一毫秒。

19、进一步的,所述根据初始化系统参数、当前时间戳及所述序列号生成分布式唯一id的过程为:

20、将时间戳减去纪元时间,然后左移22位,放置于id的高位部分;

21、数据中心id部分:将数据中心id左移17位,放置于时间戳的低位;

22、将机器id左移12位,放置于数据中心id的低位;

23、将序列号直接占用id的最低12位。

24、进一步的,所述分布式唯一id为:|符号位(1)|时间戳(41)|数据中心id(5)|机器id(5)|序列号(12)|。

25、进一步的,所述根据初始化系统参数、当前时间戳及所述序列号生成分布式唯一id之后还包括:

26、将生成的分布式唯一id返回至调用者。

27、本专利技术公开了一种分布式唯一id生成系统,包括:

28、初始化模块,用于初始化系统参数;

29、获取模块,用于获取系统当前时间戳;

30、第一生成模块,用于生成序列号;

31、第二生成模块,用于根据初始化系统参数、当前时间戳及所述序列号生成分布式唯一id。

32、本专利技术公开了一种计算机设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现所述分布式唯一id生成方法的步骤。

33、本专利技术公开了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现所述分布式唯一id生成方法的步骤。

34、本专利技术具有以下有益效果:

35、本专利技术所述的分布式唯一id生成方法、系统、设备及介质在具体操作时,根据初始化系统参数、当前时间戳及所述序列号生成分布式唯一id,能够在不同节点间确保生成id的唯一性,避免冲突。另外,通过增加初始化系统参数,可以支持更大规模的分布式集群。

本文档来自技高网...

【技术保护点】

1.一种分布式唯一ID生成方法,其特征在于,包括:

2.根据权利要求1所述的分布式唯一ID生成方法,其特征在于,所述初始化系统参数的操作过程为:

3.根据权利要求1所述的分布式唯一ID生成方法,其特征在于,所述获取当前时间戳的过程为:

4.根据权利要求1所述的分布式唯一ID生成方法,其特征在于,所述生成序列号的过程为:

5.根据权利要求1所述的分布式唯一ID生成方法,其特征在于,所述根据初始化系统参数、当前时间戳及所述序列号生成分布式唯一ID的过程为:

6.根据权利要求1所述的分布式唯一ID生成方法,其特征在于,所述分布式唯一ID为:|符号位(1)|时间戳(41)|数据中心ID(5)|机器ID(5)|序列号(12)|。

7.根据权利要求1所述的分布式唯一ID生成方法,其特征在于,所述根据初始化系统参数、当前时间戳及所述序列号生成分布式唯一ID之后还包括:

8.一种分布式唯一ID生成系统,其特征在于,包括:

9.一种计算机设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如权利要求1-7任一项所述分布式唯一ID生成方法的步骤。

10.一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1-7任一项所述分布式唯一ID生成方法的步骤。

...

【技术特征摘要】

1.一种分布式唯一id生成方法,其特征在于,包括:

2.根据权利要求1所述的分布式唯一id生成方法,其特征在于,所述初始化系统参数的操作过程为:

3.根据权利要求1所述的分布式唯一id生成方法,其特征在于,所述获取当前时间戳的过程为:

4.根据权利要求1所述的分布式唯一id生成方法,其特征在于,所述生成序列号的过程为:

5.根据权利要求1所述的分布式唯一id生成方法,其特征在于,所述根据初始化系统参数、当前时间戳及所述序列号生成分布式唯一id的过程为:

6.根据权利要求1所述的分布式唯一id生成方法,其特征在于,所述分布式唯一id为:|符号位(1)|时间戳(41)|数据中心id(5...

【专利技术属性】
技术研发人员:陈岱超魏璐宁贾中华黄茂高越
申请(专利权)人:华能宁夏能源有限公司灵武隆桥分公司
类型:发明
国别省市:

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

1