yitter / IdGenerator

💎多语言实现,高性能生成唯一数字ID。 💎优化的雪花算法(SnowFlake)——雪花漂移算法,在缩短ID长度的同时,具备极高瞬时并发处理能力(50W/0.1s)。 💎原生支持 C#/Java/Go/Rust/C/JavaScript/TypeScript/Python/Pascal 多语言,提供其它适用于其它语言的多线程安全调用动态库(FFI)。💎支持容器环境自动扩容(自动注册 WorkerId ),单机或分布式唯一IdGenerator。💎顶尖优化,超强效能。
MIT License
2.59k stars 371 forks source link

请问workerId可以重复使用吗? #101

Closed Ryoui closed 6 months ago

Ryoui commented 7 months ago

比如我默认配置下workerid只有63个。我3个服务需要用到workerId。每个服务有3到5台组成集群。 我现在的想法是程序启动时使用redis自增生成workerId初始化,程序停止时回收这个id。下次在启动先获取有没有回收了的id(未使用的),有就直接使用。这种可以吗? 比如a服务使用了workerId=1,后面a服务停用了,workerId=1就没服务使用了。这是我启动b服务,发现workerId=1没服务使用,就给b服务使用。

yitter commented 6 months ago

方案可行