互聯網通用架構技術----分佈式系統ID生成器

分佈式ID標準

  • 分佈式系統中每每ID須要跨庫全局惟一,不然引起業務層的異常衝突。
  • 全局ID必須是數字且升序,主要考慮到升序ID能夠保證DB的性能。
  • ID生成器必須穩定,由於這個系統是被全部系統所依賴的。

借鑑Instagram的ID生成算法

Instagram的ID生成算法

  • 整個ID的二進制長度爲64位
  • 前36位使用時間戳,以保證ID是升序增長
  • 中間13位是分庫標識,用來標識當前這個ID對應的記錄在哪一個數據庫中
  • 後15位爲自增序列,以保證在同一秒內併發時,ID不會重複。每一個shard庫都有一個自增序列表,生成自增序列時,從自增序列表中獲取當前自增序列值,並加1,作爲當前ID的後15位
相關文章
相關標籤/搜索