Snowflake —— 分布式全局唯一 id 生成算法
简介
Snowflake 是 Twitter 提出一种的分布式唯一序列号生成算法,理论上单节点 1 毫秒可以生成 4096 个(每秒四百万个)唯一序列,这个序列是个 long
类型的数字,在数据库中的存储和查询也非常高效。其原理很简单,却又很精妙。
原理
Snowflake 算法生成的序列号充分地利用了每一个比特位,需要占用 8bytes
(64bits
) 空间,这 64 个 bit 一共分成 4 部分:
0 | 00000000000000000000000000000000000000000 | 0000000000 | 000000000000
定值,1 位 | 时间戳(毫秒),41 位 | 节点序号,10 位 | 自增序列,12 位