雪花算法ID解析器
解析Snowflake格式的64位整数ID,反解析出生成时间戳、数据中心ID、机器ID和序列号。支持自定义位数分配和起始纪元。
免费在线工具
Loading…
使用说明
- 选择预设配置(Twitter/Discord)或切换到自定义配置模式
- 在自定义模式下可调整时间戳位数、机器ID位数、序列号位数和起始纪元(epoch)
- 输入 Snowflake 格式的 64 位整数 ID
- 自动显示解析结果:生成时间(含时间戳和格式化日期)、机器ID、序列号
- 点击「生成演示ID」可基于当前配置生成一个当前时间的 Snowflake ID 进行测试
功能介绍
- 支持 Twitter 风格(41位时间戳+10位机器ID+12位序列号,epoch=2010-11-04)和 Discord 风格(42+10+12,epoch=2015-01-01)预设配置
- 完全自定义的位数分配:时间戳位数、机器ID位数、序列号位数均可自由调整
- 自定义起始纪元(epoch),支持任意毫秒级时间戳作为纪元起点
- 机器ID自动拆分为数据中心ID和工作机器ID(各占一半)
- 可视化位数分配条形图,直观展示各部分占比
- 原始二进制位展示,方便深入分析
使用场景
分布式系统调试
解析Twitter/Discord等平台生成的Snowflake ID,追溯消息或实体的创建时间和来源机器
ID生成算法学习
通过可视化位数分配和反解析结果,深入理解Snowflake算法的原理和实现
数据库迁移规划
分析现有Snowflake ID的时间分布,为数据库分片或归档策略提供依据
自定义ID方案设计
通过调整位数分配和纪元参数,验证自定义Snowflake变体的可行性和容量
常见问题
什么是Snowflake算法?
Snowflake是Twitter开源的分布式唯一ID生成算法。它将64位整数划分为时间戳、机器ID和序列号三部分,确保在分布式环境下生成全局唯一且趋势递增的ID。
Twitter和Discord的Snowflake有什么区别?
Twitter版本使用41位时间戳(毫秒级,epoch为2010-11-04),可用约69年;Discord版本使用42位时间戳(epoch为2015-01-01),可用约139年。其余位数分配基本相同。
起始纪元(epoch)是什么?
epoch是Snowflake算法的计时起点。从epoch开始经过的毫秒数作为时间戳部分存入ID。选择较近的epoch可以让时间戳占用更少的位数,延长算法可用年限。
总位数可以超过64位吗?
不可以。Snowflake ID是64位整数(对应JavaScript的BigInt),时间戳位数+机器ID位数+序列号位数总和不能超过64,工具会对此进行校验。