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