UidGenerator分布式 ID 生成器
UidGenerator 是 Java 實現的,基于 Snowflake 算法的唯一 ID 生成器。
UidGenerator 以組件形式工作在應用項目中,支持自定義 WorkerID 位數和初始化策略,從而適用于 Docker 等虛擬化環(huán)境下實例自動重啟、漂移等場景。
在實現上,UidGenerator 通過借用未來時間來解決 sequence 天然存在的并發(fā)限制;采用 RingBuffer 來緩存已生成的UID,并行化 UID 的生產和消費,同時對 CacheLine 補齊,避免了由 RingBuffer 帶來的硬件級「偽共享」問題。最終單機 QPS 可達 600 萬。
依賴版本:Java 8 及以上版本, MySQL (內置 WorkerID 分配器,啟動階段通過 DB 進行分配;如自定義實現,則 DB 非必選依賴)
評論
圖片
表情
