<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    少年阿賓

    那些青春的歲月

      BlogJava :: 首頁 :: 聯系 :: 聚合  :: 管理
      500 Posts :: 0 Stories :: 135 Comments :: 0 Trackbacks
        Twitter-Snowflake算法產生的背景相當簡單,為了滿足Twitter每秒上萬條消息的請求,每條消息都必須分配一條唯一的id,這些id還需要一些大致的順序(方便客戶端排序),并且在分布式系統中不同機器產生的id必須不同。

    生成的ID是64Bits整型數,同時滿足高性能(>10K ids/s),低延遲(<2ms)和高可用。

    在分布式系統中,需要生成全局UID的場合還是比較多的,twitter的snowflake解決了這種需求,實現也還是很簡單的,除去配置信息,核心代碼就是毫秒級時間41位+機器ID 10位+毫秒內序列12位。

    該項目地址為:https://github.com/twitter/snowflake是用Scala實現的。

    python版詳見開源項目https://github.com/erans/pysnowflake

    核心代碼為其IdWorker這個類實現,其原理結構如下,我分別用一個0表示一位,用—分割開部分的作用:

    0---0000000000 0000000000 0000000000 0000000000 0 --- 00000 ---00000 ---0000000000 00

    在上面的字符串中,第一位為未使用(實際上也可作為long的符號位),接下來的41位為毫秒級時間,然后5位datacenter標識位,5位機器ID(并不算標識符,實際是為線程標識),然后12位該毫秒內的當前毫秒內的計數,加起來剛好64位,為一個Long型。

    這樣的好處是,整體上按照時間自增排序,并且整個分布式系統內不會產生ID碰撞(由datacenter和機器ID作區分),并且效率較高,經測試,snowflake每秒能夠產生26萬ID左右,完全滿足需要。

    1. 41位的時間序列(精確到毫秒,41位的長度可以使用69年) 

    2. 10位的機器標識(10位的長度最多支持部署1024個節點,支持多機房的分布式,需要使用zookeeper) 

    3. 12位的計數順序號(12位的計數順序號支持每個節點每毫秒產生4096個ID序號) 最高位是符號位,始終為0。

    //64--------63-----------22-----------12----------0
    //符號位 |41位時間 |10位機器碼 |12位自增碼|

    對twitter而言這樣的ID生成方案滿足:

    1.每秒能夠生成足夠的ID數。 2.生成的ID按照時間大致有序。

    用zookeeper的原因是需要獲取一個workerId,當然你也可以給分布式節點手工指定不同的workderId,那樣就不需要用zookeeper了。

    一個server一個workerid, 用zookeeper做保證.


    除了最高位bit標記為不可用以外,其余三組bit占位均可浮動,看具體的業務需求而定。默認情況下41bit的時間戳可以支持該算法使用到2082年,10bit的工作機器id可以支持1023臺機器,序列號支持1毫秒產生4095個自增序列id
















    posted on 2015-05-17 13:20 abin 閱讀(1207) 評論(0)  編輯  收藏

    只有注冊用戶登錄后才能發表評論。


    網站導航:
     
    主站蜘蛛池模板: 91在线视频免费91| 一级毛片a免费播放王色电影| a毛片全部免费播放| 亚洲人成网站在线观看青青| 亚洲国产成人久久一区二区三区| 精品国产免费观看| 亚洲无人区视频大全| 在线a免费观看最新网站| 亚洲精品美女久久久久| 暖暖日本免费中文字幕| 久久国产亚洲高清观看| 99热在线免费播放| 亚洲国产精品综合一区在线| 日韩欧毛片免费视频| 免费人成网站7777视频| 久久久久久亚洲精品中文字幕| baoyu116.永久免费视频| 亚洲成人精品久久| 国产精品色拉拉免费看| 亚洲av综合av一区二区三区| 在线观看亚洲免费视频| jizz在线免费观看| 婷婷亚洲综合五月天小说| 国产91免费视频| 亚洲熟妇无码av另类vr影视| 国产男女性潮高清免费网站| 日韩精品视频在线观看免费| 亚洲第一极品精品无码久久| 亚洲爆乳无码精品AAA片蜜桃| 免费欧洲美女牲交视频| 亚洲人成色777777精品| 亚洲精品网站在线观看不卡无广告| 亚洲精品黄色视频在线观看免费资源 | 久久亚洲2019中文字幕| 成人黄网站片免费视频| 亚洲最大视频网站| 国产免费一区二区三区VR| 国产成人无码精品久久久久免费| 18亚洲男同志videos网站| 日本19禁啪啪无遮挡免费动图| 一级全免费视频播放|