IdGenerator icon indicating copy to clipboard operation
IdGenerator copied to clipboard

java中workerId的数据类型short最大值是32767,要是服务集群部署,每个节点分配一个用不了多久就达到最大值了吧

Open gulang12 opened this issue 1 year ago • 3 comments

项目中使用redis自增的方式为微服务集群每个节点动态分配workerId值,就是每次服务启动的时候采用redis从0开始自增获取workerId, 要是集群规模比较大的话,用不了多久这个workerId就能达到short最大值了吧,难道要重新把它刷到0开始自增吗

gulang12 avatar Nov 10 '23 09:11 gulang12

参考实现(自动注册workderid): https://github.com/yitter/IdGenerator/blob/master/Go/regworkerid/regworkerid/reghelper.go

yitter avatar Nov 11 '23 18:11 yitter

你的服务器集群,容器启动个数,会超过32700个吗?

yitter avatar Dec 11 '23 11:12 yitter

你的服务器集群,容器启动个数,会超过32700个吗?

当然会了,我们现在就是扩位的,16位,用IP最后两位,最大长度是2^16-1,short在这里不合理,对于java来说,java都是有符号位的。

irwinai avatar Feb 02 '24 05:02 irwinai