在线Snowflake ID生成器

工具加载中...

工具介绍

在线Snowflake ID生成器,用于批量生成Snowflake ID标识符,应用于分布式系统。

什么是Snowflake ID生成器?

Snowflake ID 生成器是一种分布式唯一标识符生成系统,由 Twitter 在 2010 年推出。它旨在生成高效且唯一的 64 位 ID,用于分布式系统中需要生成唯一 ID 的场景。Snowflake ID 的设计特点使其能够在分布式环境中生成唯一且有序的 ID,而无需依赖中央协调器。

一个 Snowflake ID 通常包含以下几部分:

时间戳部分(41 位):表示生成 ID 的时间(以毫秒为单位),可以持续使用约 69 年。

数据中心 ID 部分(5 位):表示生成 ID 的数据中心,可以支持 32 个数据中心。

机器 ID 部分(5 位):表示生成 ID 的机器,可以支持每个数据中心中的 32 台机器。

序列号部分(12 位):表示同一毫秒内生成的不同 ID,可以在同一毫秒内生成 4096 个不同的 ID。

这些部分组合在一起形成一个 64 位的整数,保证了 ID 的唯一性和有序性。由于 Snowflake ID 包含了时间戳部分,生成的 ID 也是按照时间顺序递增的,这对某些需要排序的场景非常有用。

 Snowflake ID示例

例如,一个 Snowflake ID 的结构如下:

+----------------------+----------------+----------------+----------------+
| 41-bit Timestamp     | 5-bit DC ID    | 5-bit Machine ID | 12-bit Sequence |
+----------------------+----------------+----------------+----------------+

每个部分的具体含义如下:

时间戳部分:例如 1622033281000 表示 2021 年 5 月 26 日的某一毫秒。

数据中心 ID 部分:例如 1 表示第一个数据中心。

机器 ID 部分:例如 1 表示数据中心中的第一台机器。

序列号部分:例如 1 表示该毫秒内生成的第一个 ID。