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

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

复制代码
mybatis-plus模块

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

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

查看跟踪核心代码

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

查看

复制代码
WorkerNodeEntity 类

给id加上 自增注解

查看

复制代码
WorkerNodeDAO 类

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

如图

最后给获取方法 加上锁

由此解决问题。

相关推荐
AAA阿giao2 分钟前
拼乐高式开发:深入剖析 React 组件通信、弹窗设计与样式管理
开发语言·前端·javascript·react.js·前端框架·props·components
apihz3 分钟前
免费手机号归属地查询API接口详细教程
android·java·运维·服务器·开发语言
倔强的小石头_3 分钟前
Python 从入门到实战(十三):Flask + 数据库(让 Web 应用支持数据持久化与多人协作)
数据库·python·flask
程序员小假4 分钟前
学院本大二混子终于找到实习了...
java·后端
回吐泡泡oO5 分钟前
找不到rar.RarArchiveInputStream?JAVA解压RAR5的方案。
java·开发语言
JienDa7 分钟前
PHP 静态分析工具实战:PHPStan 和 Psalm 完全指南
开发语言·php
jiayong237 分钟前
AI应用领域编程语言选择指南:Java vs Python vs Go
java·人工智能·python
XXYBMOOO7 分钟前
Qt 调用 DLL 实现固件升级进度弹窗(完整实战案例)
开发语言·qt·性能优化·简单工厂模式
胖咕噜的稞达鸭10 分钟前
【C语言进阶】死磕指针:从内存原理到指针数组的深度解析
c语言·开发语言·网络
lly20240610 分钟前
Pandas 相关性分析
开发语言