帶你入門java雪花算法原理

雪花算法(SnowFlake)

雪花算法是Twitter開源的分佈式ID生成算法.

主要是由64bit的long型生成的全局ID,引入瞭時間戳和ID保持自增的屬性.

64bit分為四個部分:

第一個部分是1bit, 這不 使用,沒有意義;

第二個部分是41bit, 組成時間戳;

第三個部分是10bit, 工作機器ID,裡面分為兩個部分,5個bit是的是機房號,代表最多有25即32個機房,5個bit是指機器的ID,代表最多有25個機器,即32個機器 .

第四部分是12bit, 代表是同一個毫秒類產生不同的ID,區分同一個毫秒內產生的ID.

總的來說就是一個機房,一臺機器,在同一號毫秒時產生的ID,可能在同一秒鐘產生不同的ID,最後12bit序列號可以區分在同一秒鐘的不同ID.

雪花算法保證:

1.所生成的ID按時間遞增

2.整個分佈式系統不會有重復的ID

在這裡插入圖片描述

總結

本篇文章的內容就到這瞭,希望大傢可以喜歡,也希望大傢可以多多關註WalkonNet的其他精彩內容!

推薦閱讀: