snowflake是由Twitter提出的一个分布式全局id生成算法,算法生成的ID结果是一个64bit大小的长整,标准算法下结构如下图
解释:
1位:不用,二进制最高位为符号位,我们生成的ID 一般都是正整数,所以这个最高位固定是 0
41位:用来记录时间戳(毫秒),可以表示2^41-1个数字,约69年
10位:用来记录工作机器id,可以部署在2^10共1024个节点
12位:序列号,用于记录同意毫秒内产的不同id,12位可以表示的最大正整数是2^12-1共4095个数字,来表示同一机器同一时间戳(毫秒)内产生的4095个ID序号