【遷移2018-05-08 14:14:27】全局惟一ID生成

惟一ID生成

全局惟一ID

  • 《高併發分佈式系統中生成全局惟一Id彙總》html

    • Twitter 方案(Snowflake 算法):41位時間戳+10位機器標識(好比IP,服務器名稱等)+12位序列號(本地計數器)
    • Flicker 方案:MySQL自增ID + "REPLACE INTO XXX:SELECT LAST_INSERT_ID();"
    • UUID:缺點,無序,字符串過長,佔用空間,影響檢索性能。
    • MongoDB 方案:利用 ObjectId。缺點:不能自增。
  • 《TDDL 在分佈式下的SEQUENCE原理》算法

    • 在數據庫中建立 sequence 表,用於記錄,當前已被佔用的id最大值。
    • 每臺客戶端主機取一個id區間(好比 1000~2000)緩存在本地,並更新 sequence 表中的id最大值記錄。
    • 客戶端主機之間取不一樣的id區間,用完再取,使用樂觀鎖機制控制併發。

附:* 什麼是Snowflake算法數據庫

相關文章
相關標籤/搜索