snowflake 算法是 twitter 开源的分布式 id 生成算法,就是把一个 64 位的 long 型的 id,1 个bit是不用的,用其中的 41 bit 做为毫秒数,用 10 bit 做为工做机器 id,12 bit 做为序列号。算法
2^41 - 1
,也就是能够标识 2^41 - 1
个毫秒值,换算成年就是表示69年的时间。2^5
个机房(32个机房),每一个机房里能够表明 2^5
个机器(32台机器)。2^12 - 1 = 4096
,也就是说能够用这个 12 bit 表明的数字来区分同一个毫秒内的 4096 个不一样的 id。0 | 0001100 10100010 10111110 10001001 01011100 00 | 10001 | 1 1001 | 0000 00000000