honey
honey copied to clipboard
OneTimeSnowflakeId有重复id的bug
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 感谢你提出的问题. 此问题已在V2.1.3.6 修复, 欢迎关注!