【迁移2018-05-08 14:14:27】全局唯一ID生成
生活随笔
收集整理的這篇文章主要介紹了
【迁移2018-05-08 14:14:27】全局唯一ID生成
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
為什么80%的碼農都做不了架構師?>>> ??
唯一ID生成
全局唯一ID
-
《高并發分布式系統中生成全局唯一Id匯總》
- 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算法
轉載于:https://my.oschina.net/twen/blog/1925475
總結
以上是生活随笔為你收集整理的【迁移2018-05-08 14:14:27】全局唯一ID生成的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Gitter - 高颜值GitHub小程
- 下一篇: hdfs的常用命令