snowFlake 是 Twitter 公司采用的一种算法,目的是在分布式系统中产生全局唯一且趋势递增的 ID。
第一位占用 1bit,其值始终是 0,没有实际作用。2.时间戳 占用 41bit,精确到毫秒,总共可以容纳约 69 年的时间。3.工作机器 id 占用 10bit,其中高位 5bit 是数据中心 ID,低位 5bit 是工作节点 ID,做多可以容纳 1024 个节点。4.序列号 占用 12bit,每个节点每毫秒 0 开始不断累加,最多可以累加到 4095,一共可以产生 4096 个 ID。
SnowFlake 算法在同一毫秒内最多可以生成 1024 X 4096 = 4194304 个全局唯一 ID。