一、參考文章-標記
分布式ID方案有哪些?雪花算法如何搞定時鐘回撥和動態機器ID?
二、應用
1.百度 uid-generator
github項目地址
原理參考
2.百度 uid-generator 擴展應用
燈官網
燈 項目代碼
lamp-util 單元模塊
lamp-util 單元模塊子模塊 lamp-uid 擴展uid-generator:
-
WorkerNodeDAO 從 com.baidu.fsg.uid.worker.dao.WorkerNodeDAO 移動到 top.tangyh.basic.uid.dao.WorkerNodeDAO
-
DisposableWorkerIdAssigner 類的assignWorkerId方法,事務增加:(rollbackFor = Exception.class
-
關于UID比特分配的建議
對于并發數要求不高、期望長期使用的應用, 可增加timeBits位數, 減少seqBits位數. 例如節點采取用完即棄的WorkerIdAssigner策略,
重啟頻率為12次/天, 那么配置成{“workerBits”:23,“timeBits”:31,“seqBits”:9}時,可支持28個節點以整體并發量14400 UID/s的速度持續運行68年.對于節點重啟頻率頻繁、期望長期使用的應用, 可增加workerBits和timeBits位數, 減少seqBits位數. 例如節點采取用完即棄的WorkerIdAssigner策略,重啟頻率為24*12次/天, 那么配置成{“workerBits”:27,“timeBits”:30,“seqBits”:6}時,可支持37個節點以整體并發量2400 UID/s的速度持續運行34年.