千鋒教育-做有情懷、有良心、有品質的職業教育機構

手機站
千鋒教育

千鋒學習站 | 隨時隨地免費學

千鋒教育

掃一掃進入千鋒手機站

領取全套視頻
千鋒教育

關注千鋒學習站小程序
隨時隨地免費學習課程

當前位置:首頁  >  技術干貨  > 雪花算法如何實現的?

雪花算法如何實現的?

來源:千鋒教育
發布人:wjy
時間: 2022-09-22 16:30:00 1663835400

  Snowflake,雪花算法是由Twitter開源的分布式ID生成算法,以劃分命名空間的方式將 64-bit位分割成多個部分,每個部分代表不同的含義。而 Java中64bit的整數是Long類型,所以在 Java 中 SnowFlake 算法生成的 ID 就是 long 來存儲的。

  第1位占用1bit,其值始終是0,可看做是符號位不使用。

  第2位開始的41位是時間戳,41-bit位可表示2^41個數,每個數代表毫秒,那么雪花算法可用的時間年限是(1L<<41)/(1000L360024*365)=69 年的時間。

  中間的10-bit位可表示機器數,即2^10 = 1024臺機器,但是一般情況下我們不會部署這么臺機器。如果我們對IDC(互聯網數據中心)有需求,還可以將 10-bit 分 5-bit 給 IDC,分5-bit給工作機器。這樣就可以表示32個IDC,每個IDC下可以有32臺機器,具體的劃分可以根據自身需求定義。

  最后12-bit位是自增序列,可表示2^12 = 4096個數。

  這樣的劃分之后相當于在一毫秒一個數據中心的一臺機器上可產生4096個有序的不重復的ID。但是我們 IDC 和機器數肯定不止一個,所以毫秒內能生成的有序ID數是翻倍的。

雪花算法如何實現的

tags:
聲明:本站稿件版權均屬千鋒教育所有,未經許可不得擅自轉載。
10年以上業內強師集結,手把手帶你蛻變精英
請您保持通訊暢通,專屬學習老師24小時內將與您1V1溝通
免費領取
今日已有369人領取成功
劉同學 138****2860 剛剛成功領取
王同學 131****2015 剛剛成功領取
張同學 133****4652 剛剛成功領取
李同學 135****8607 剛剛成功領取
楊同學 132****5667 剛剛成功領取
岳同學 134****6652 剛剛成功領取
梁同學 157****2950 剛剛成功領取
劉同學 189****1015 剛剛成功領取
張同學 155****4678 剛剛成功領取
鄒同學 139****2907 剛剛成功領取
董同學 138****2867 剛剛成功領取
周同學 136****3602 剛剛成功領取
相關推薦HOT
久久亚洲中文字幕精品一区四,亚洲日本另类欧美一区二区,久久久久久久这里只有免费费精品,高清国产激情视频在线观看
亚洲午夜国产精品无卡 | 亚洲AV乱码一区二区三区按摩 | 中文字幕欧美视频77 | 自拍自偷一区二区三区 | 亚洲欧美中文一区二区三区 | 亚洲美女在线一区二区 |