雪花算法 集群uid重复问题 uid-generator-spring-boot-starter

1、在生成环境 在某个业务使用该插件生成uid,由于业务整合了

复制代码
mybatis-plus模块

2、该业务是分部署集群部署以及使用的多线程获取uid,使用中发现唯一建冲突,生成的uid有重复。

然后查看日志发现 workerId 始终为0 怀疑是生成workerId出了问题。

查看跟踪核心代码

发现 是保存响应的代码有问题,没有响应id

查看

复制代码
WorkerNodeEntity 类

给id加上 自增注解

查看

复制代码
WorkerNodeDAO 类

复制代码
addWorkerNode方法 
复制代码
@Options注解加上
复制代码
keyProperty参数

如图

最后给获取方法 加上锁

由此解决问题。

相关推荐
sjmaysee几秒前
@RestController注解
java
魑魅魍魉都是鬼1 分钟前
Android:java kotlin 单例模式
android·java·单例模式
LSL666_1 分钟前
5 MySQL驱动类选择与数据库连接 URL 时区配置
数据库·mysql·mybatis·mybatisplus
WG_173 分钟前
Linux44:POSIX信号量:
java·开发语言
WZTTMoon3 分钟前
Spring Boot 启动报错:OpenFeign 隐性循环依赖,排查了整整一下午
java·spring boot·后端·spring cloud·feign
俩个逗号。。6 分钟前
Kotlin 扩展函数详解
开发语言·kotlin
苏渡苇7 分钟前
Stream.collect() 的花式玩法:Collector.of() 自定义收集器
java·stream·jdk21·collector·jdk8+·自定义收集器
逍遥德8 分钟前
怎样跨过PostgreSQL性能专家的门槛
数据库·sql·postgresql·数据分析
丶小鱼丶11 分钟前
数据结构和算法之【队列】
java·数据结构
Ronin3051 小时前
【Qt常用控件】容器类控件和布局管理器
开发语言·qt·常用控件·布局管理器·容器类控件