honey icon indicating copy to clipboard operation
honey copied to clipboard

OneTimeSnowflakeId有重复id的bug

Open warne-wyp opened this issue 2 years ago • 1 comments

https://github.com/automvc/honey/blob/master/src/main/java/org/teasoft/honey/distribution/OneTimeSnowflakeId.java

问题:当(sequence >> sequenceBits) > 0和segment >= maxSegment都为true时,会导致每次请求time都在递增 if ((sequence >> sequenceBits) > 0) { // 超过序列位表示的最大值 if (segment >= maxSegment) { // 已用完,自动用下一秒的 time++; } else { sequence = 0L; segment++; } } 改为: if ((sequence >> sequenceBits) > 0) { // 超过序列位表示的最大值 sequence = 0L; if (segment >= maxSegment) { // 已用完,自动用下一秒的 time++; segment = 0L; } else { segment++; } }

warne-wyp avatar Jan 17 '23 07:01 warne-wyp

@warne-wyp 感谢你提出的问题. 此问题已在V2.1.3.6 修复, 欢迎关注!

automvc avatar Mar 12 '23 13:03 automvc