yitter / IdGenerator

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

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

单服务多线程下生成的Id重复

benxionghu opened this issue · comments

服务器配置:32C64G
线程数:10个
项目配置:

        IdGeneratorOptions options = new IdGeneratorOptions();
        options.WorkerIdBitLength = 6;
        options.SeqBitLength = 6;
        options.Method = method;
        options.WorkerId = 1;
        YitIdHelper.setIdGenerator(options);

在插入数据库的时候大批量提示Id重复
请问这个问题的原因是我的配置问题吗

commented

1.确保初始化过程只有1次。
2.确保所有调用nextId的过程,一定发生在初始化之后。
3.去掉不必要的业务代码,用最少的逻辑去验证是否有ID重复,也尽量不要用外部组件。