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
19827124016650690562
19827124016650690573
19827124016650690584
19827124016650690595
1982712401665069060结构信息
总位数64 bits
时间戳位数41 bits
数据中心位数5 bits (0-31)
机器位数5 bits (0-31)
序列号位数12 bits (0-4095)