UidGenerator(百度)

UidGenerator 是百度开源的一款基于 Snowflake(雪花算法)的唯一 ID 生成器。

不过,UidGenerator 对 Snowflake(雪花算法)进行了改进,生成的唯一 ID 组成如下:

UidGenerator 生成的 ID 组成

UidGenerator 生成的 ID 组成

  • sign(1bit):符号位(标识正负),始终为 0,代表生成的 ID 为正数。
  • delta seconds (28 bits):当前时间,相对于时间基点”2016-05-20”的增量值,单位:秒,最多可支持约 8.7 年
  • worker id (22 bits):机器 id,最多可支持约 420w 次机器启动。内置实现为在启动时由数据库分配,默认分配策略为用后即弃,后续可提供复用策略。
  • sequence (13 bits):每秒下的并发序列,13 bits 可支持每秒 8192 个并发。

可以看出,和原始 Snowflake(雪花算法)生成的唯一 ID 的组成不太一样。并且,上面这些参数我们都可以自定义。

UidGenerator 官方文档中的介绍如下:

a|700

自 18 年后,UidGenerator 就基本没有再维护了,我这里也不过多介绍。想要进一步了解的朋友,可以看看 UidGenerator 的官方介绍