当前位置: 首页 > 后端技术 > Java

雪花算法(SnowFlake)

时间:2023-04-01 17:15:08 Java

什么是雪花算法?SnowflakeAlgorithm:一种算法,解决了id应该怎么生成的问题,帮我们自动生成id。原理:生成一个64位long类型的id。最高1位符号位,固定为0,代表正数,1代表负数。后面41位存储一个毫秒级的时间戳2^41/(1000606024365)=69.73年后的10位机器标识最多可以部署2^10=1024台机器的后12位是自增计数序列号,用于保证同一台机器在同一毫秒时间戳下生成的id尽可能不重复,以不同的方式存储最多2^12=4096个序列。优点:性能强,每秒可生成数百万个唯一ID。毫秒数在高位,自增序列在低位,整个ID呈上升趋势,不依赖第三方库或中间件。在内存中执行,效率高,缺点机器时钟回拨时,会导致产生重复的ID。