帶你入門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的其他精彩內容!
推薦閱讀:
- 從對話看趨勢,細數2021上半年的遊戲圈大勢
- Java實現雪花算法的原理
- 不僅是社交平臺:Twitter直播助力遊戲出海
- Go語言實現Snowflake雪花算法
- PHP利用雪花(SnowFlake)算法生成唯一ID