2018年8月

Snowflake —— 分布式全局唯一 id 生成算法

简介

Snowflake 是 Twitter 提出一种的分布式唯一序列号生成算法,理论上单节点 1 毫秒可以生成 4096 个(每秒四百万个)唯一序列,这个序列是个 long 类型的数字,在数据库中的存储和查询也非常高效。其原理很简单,却又很精妙。

原理

Snowflake 算法生成的序列号充分地利用了每一个比特位,需要占用 8bytes(64bits) 空间,这 64 个 bit 一共分成 4 部分:

0         | 00000000000000000000000000000000000000000 | 0000000000    | 000000000000
定值,1 位 | 时间戳(毫秒),41 位                        | 节点序号,10 位 | 自增序列,12 位

- 阅读剩余部分 -