雪花算法是 Twitter 开源的分布式 ID 生成算法,它具有这些特点:
- 高性能高可用,生成不依赖于数据库,可以分布式部署,完全在内存内生成
- 基于时间戳,生成的 ID 是相对来说有序递增的(
- 高吞吐,允许百万级 QPS
雪花算法原理
雪花算法通常使用一个 64 位长整型来存储一个 ID,这 64 位中包含了时间戳、机器 ID 和序列号三部分:
二进制下形似这样(使用空格分割便于阅读):
0 11001010011010101011001110100010011111110 0000000001 000000000001
↑ ↑ ↑ ↑
1 2 3 4
2025年2月5日大约 2 分钟