分布式ID生成 SnowFlake 算法实现

snowflake 是 twitter 开源的分布式ID生成算法。
其核心**为,一个long型的ID:

41 bit 作为毫秒数 - 41位的长度可以使用69年
10 bit 作为机器编号 (5个bit是数据中心,5个bit的机器ID) - 10位的长度最多支持部署1024个节点
12 bit 作为毫秒内序列号 - 12位的计数顺序号支持每个节点每毫秒产生4096个ID序号
1 bit 作为符号位

优点:高性能,低延迟;独立的应用;按时间有序

示意图:
avatar

算法单机每秒内理论上最多可以生成1000*(2^12),也就是400W的ID,完全能满足业务的需求。