TingYu Tools

Snowflake ID

生成/解析雪花 ID

Epoch 预设

当前 Epoch:2010-11-04 09:42:54

生成选项

数据中心标识(0-31)

机器标识(0-31)

一次生成多个 Snowflake ID(1-100)

💡 使用说明

什么是 Snowflake ID?

Snowflake 是 Twitter 开源的分布式 ID 生成算法,生成 64 位整数 ID,具有趋势递增、全局唯一的特性,适用于分布式系统。

结构

Snowflake ID 由 41 位时间戳 + 5 位数据中心 ID + 5 位机器 ID + 12 位序列号组成,共 64 位。时间戳精度为毫秒,序列号在同一毫秒内递增。

特性

  • 趋势递增:按时间排序,数据库索引友好
  • 全局唯一:支持分布式环境下的 ID 生成
  • 高性能:单机每毫秒可生成 4096 个 ID
  • 可解析:可以从 ID 中提取时间戳和机器信息

应用场景

  • 分布式系统的全局唯一 ID
  • 数据库分库分表的主键
  • 消息队列的消息 ID
  • 订单号、流水号等业务 ID

注意事项

  • Epoch 是起始时间戳,影响 ID 的值范围和寿命
  • 数据中心 ID 和机器 ID 需要在集群中唯一分配
  • 序列号在同一毫秒内递增,用完后等待下一毫秒

生成的 Snowflake ID (5)

1
1982712401665069056
2
1982712401665069057
3
1982712401665069058
4
1982712401665069059
5
1982712401665069060
结构信息
总位数64 bits
时间戳位数41 bits
数据中心位数5 bits (0-31)
机器位数5 bits (0-31)
序列号位数12 bits (0-4095)

Snowflake ID 解析