目录
一. 模式介绍
Leaf的snowflake模式采用了Twitter开源的Snowflake算法。
snowflake算法是一种划分命名空间来生成ID的一种算法,这种方案把64-bit分别划分成多段,分开来标示时间戳、机器、序列号等。
41bit为时间戳,可以表示的时间范围为(1L<<41)/(1000L*3600*24*365)=69年的时间;
10bit为机器id,可用于表示1024台机器;
12bit为自增序列号,可以表示2^12个ID。
64bit的二进制转为long就是snowflake生成的Id。
这种分配方式可以保证任何一台机器在任意毫秒内生成的ID都是不同的。
二. 存在问题
数据倾斜问题