互聯網通用架構技術----分佈式系統ID生成器
分佈式ID標準
- 分佈式系統中每每ID須要跨庫全局惟一,不然引起業務層的異常衝突。
- 全局ID必須是數字且升序,主要考慮到升序ID能夠保證DB的性能。
- ID生成器必須穩定,由於這個系統是被全部系統所依賴的。
借鑑Instagram的ID生成算法
- 整個ID的二進制長度爲64位
- 前36位使用時間戳,以保證ID是升序增長
- 中間13位是分庫標識,用來標識當前這個ID對應的記錄在哪一個數據庫中
- 後15位爲自增序列,以保證在同一秒內併發時,ID不會重複。每一個shard庫都有一個自增序列表,生成自增序列時,從自增序列表中獲取當前自增序列值,並加1,作爲當前ID的後15位
歡迎關注本站公眾號,獲取更多信息