分布式ID方案(标记)
一、参考文章-标记
分布式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年.