Skip to content
进阶

一句话答案

64 位 ID:1 位符号 + 41 位时间戳(69 年)+ 10 位机器(1024 台)+ 12 位序列(4096/ms),注意时钟回拨问题。

核心要点

结构: 0(符号) | 41位时间戳(69年) | 10位机器(1024台) | 12位序列(4096/ms)

优点: 有序递增 / 高性能 / 不依赖第三方

时钟回拨问题: 机器时钟回拨会生成重复ID → 解决:拒绝/等待/备用机器ID

追问与易错

追问方向:

  • 为什么 41 位时间戳?够用多久?
  • WorkerID 怎么分配?
  • 序列号 12 位够用吗?

易错点:

  • ❌ 雪花算法全局递增——只是趋势递增
  • ❌ 忽略时钟回拨问题

💡 记忆锚点

64位ID像身份证号的编码规则:1位固定0 + 41位时间戳(哪一毫秒生的,够用69年)+ 10位机器号(哪台机器生的,1024台)+ 12位序列号(同一毫秒第几个,最多4096个)。单机每秒可产400万ID,命门在时钟回拨——时钟倒退会撞号,必须检测并处理。