hutool雪花算法生成重复

hutool雪花算法生成重复

参考链接:

记一次线上 Snowflake 算法 id 重复事件复盘_idutil.getsnowflake-CSDN博客

Snowflake生成器单机模拟时间回退导致id重复 · Issue #1206 · dromara/hutool (github.com)

一、问题描述

使用版本:

cn.hutool

hutool-all

5.6.3

获取id具体代码:

public class SnowflakeUtils {

/**

* 生成Snowflake id

*/

public static String createNo() {

Snowflake snowflake = new Snowflake(1, 1);

return snowflake.nextIdStr();

}

}

问题:高并发时重复。具体表现为jmeter设置10秒内发送200个请求时,偶发性会产生1~2个重复id,500个时,固定会有一场,1000个并发时,大约2%重复

解决方法:

1)单例模式获取雪花算法实例

2)升级到叫新版本(对于我的版本其实不用,但是最好升级一下)

改造后的pom和java:

pom:

cn.hutool

hutool-all

5.8.25

java:

public class SnowflakeUtils {

/**

* 生成Snowflake id

*/

public static String createNo() {

Snowflake snowflake = IdUtil.getSnowflake(1, 1);//单例方式获取实例,否则高并发会重复!!!

return snowflake.nextIdStr();

}

}

jmeter:

设置

0异常:

相关风暴

宋佳:曾被4个男人狂追,与5婚导演同居5年,如今42岁还未婚
安卓怎么安装365BET

宋佳:曾被4个男人狂追,与5婚导演同居5年,如今42岁还未婚

🌀 09-26 🌊 阅读 1213
闲鱼的东西怎么样?闲鱼正品为什么便宜
英国手机版365

闲鱼的东西怎么样?闲鱼正品为什么便宜

🌀 09-08 🌊 阅读 5271