国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

雪花算法 - snowflake

lemon / 3020人閱讀

摘要:有些時候我們希望能使用一種簡單一些的,并且希望能夠按照時間有序生成。轉換成字符串后長度最多生成的整體上按照時間自增排序,并且整個分布式系統內不會產生碰撞由和作區分,并且效率較高。經測試每秒能夠產生萬個。

概述

分布式系統中,有一些需要使用全局唯一ID的場景,這種時候為了防止ID沖突可以使用36位的UUID,但是UUID有一些缺點,首先他相對比較長,另外UUID一般是無序的。

有些時候我們希望能使用一種簡單一些的ID,并且希望ID能夠按照時間有序生成。

而twitter的snowflake解決了這種需求,最初Twitter把存儲系統從MySQL遷移到Cassandra,因為Cassandra沒有順序ID生成機制,所以開發了這樣一套全局唯一ID生成服務。

結構

snowflake的結構如下(每部分用-分開):

最高位是符號位,始終為0,不可用

接下來的41位為毫秒級時間(41位的長度可以使用69年)

然后是5位datacenterId和5位workerId(10位的長度最多支持部署1024個節點)

最后12位是毫秒內的計數(12位的計數順序號支持每個節點每毫秒產生4096個ID序號)

一共加起來剛好64位,為一個Long型。(轉換成字符串后長度最多19)

snowflake生成的ID整體上按照時間自增排序,并且整個分布式系統內不會產生ID碰撞(由datacenter和workerId作區分),并且效率較高。經測試snowflake每秒能夠產生26萬個ID。

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/29788.html

相關文章

  • Twitter的分布式雪花算法 SnowFlake 每秒自增生成26個萬個可排序的ID (Java版

    摘要:原理的雪花算法,使用語言實現。生成的整體上按照時間自增排序,并且整個分布式系統內不會產生碰撞由和作區分,并且效率較高。據說每秒能夠產生萬個。 分布式系統中,有一些需要使用全局唯一ID的場景,這種時候為了防止ID沖突可以使用36位的UUID,但是UUID有一些缺點,首先他相對比較長,另外UUID一般是無序的。 有些時候我們希望能使用一種簡單一些的ID,并且希望ID能夠按照時間有序生成。 ...

    Awbeci 評論0 收藏0
  • 關于生成訂單號規則的一些思考

    摘要:關于我為什么寫這篇文章是因為今天在做訂單模塊的時候看到之前的上描述的年月日用戶位企業位四位自增長數。背景對于其定訂單的生成。個人的看法是主要是唯一,其他關于業務方面的不是太太重要。自增實現了用于將的值遞增,并返回結果。 關于我為什么寫這篇文章是因為今天在做訂單模塊的時候,看到之前的PRD上描述的年月日+用戶id2位+企業id位+四位自增長數。然后竟被我反駁的突然改成了精確時間+4位自增...

    omgdog 評論0 收藏0
  • 雪花算法(03)生成時間

    摘要:前面的理論基礎和位運算都了解了,下面我們來生成雪花算法的第一部分,也就是時間部分。這個時候就有一個問題了,如果我們系統的時鐘錯了會不會有問題會所以要做判斷而且系統的時鐘錯誤也是雪花算法的一個致命問題,所以要一定要保證服務器的系統時間正確。 前面的理論基礎和位運算都了解了,下面我們來生成雪花算法的第一部分,也就是時間部分。時間部分的邏輯起始很簡單,就是規定一個起始時間戳,然后用當前時間戳...

    張紅新 評論0 收藏0
  • 分布式id生成方案概述

    摘要:序本文主要來聊聊分布式的生成方案。分布式的生成,以為代表的,系列算法采用的就是劃分命名空間并行生成的思路。 序 本文主要來聊聊分布式id的生成方案。 目標 業務系統需要什么樣的ID生成器中提出了幾點目標: 唯一性 時間相關 粗略有序 可反解 可制造 主要思路 對于每個標識,都需要有一個命名空間(namespace),來保證其相對唯一性。分布式的ID生成,以Twitter Snowf...

    Terry_Tai 評論0 收藏0

發表評論

0條評論

最新活動
閱讀需要支付1元查看
<