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

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

复制代码
mybatis-plus模块

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

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

查看跟踪核心代码

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

查看

复制代码
WorkerNodeEntity 类

给id加上 自增注解

查看

复制代码
WorkerNodeDAO 类

给

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

如图

最后给获取方法 加上锁

由此解决问题。

相关推荐
liangshanbo1215几秒前
主系统登录后,子系统怎么实现自动登录?
java·网络·数据库
大草原的小灰灰1 分钟前
Python面向对象编程
开发语言·python
知识分享小能手2 分钟前
C学习教程,从入门到精通,C语言概述 —— 知识点详解(1)
c语言·开发语言·学习
许彰午5 分钟前
05-静默安装常见报错与解决
数据库
ShineWinsu19 分钟前
对于Redis:缓存的解析
java·redis·缓存·缓存穿透·缓存击穿·缓存雪崩·缓存预热
害人终害己27 分钟前
redis修改密码的地方在哪里
数据库·redis·缓存
rannn_11127 分钟前
【Java面试题】高频面试题1|Java 后端、MySQL、Redis 与 RAG 面试整理
java·jvm·数据库·后端·面试
写后端的胖头鱼30 分钟前
一文详解Spring 事务失效场景
java·spring·事务·transactional·事务传播机制
Q264336502335 分钟前
【有源码】基于Spring Boot和Vue的在线考试与交流系统-教育信息化背景下在线考试与交流一体化平台
java·vue.js·spring boot·mysql·spring·毕业设计·课程设计
Chen_harmony38 分钟前
一、C++入门基础
开发语言·c++