UUID 重复问题大讨论

JavaPub-rodert
博客专家认证
2021-01-12 09:17:19
UUID 重复问题大讨论

查遍baidu,没人说个正经话,这里讨论一下,结果会整理发到博客。
...全文
4043 24 打赏 收藏 转发到动态 举报
写回复
用AI写文章
24 条回复
切换为时间正序
请发表友善的回复…
发表回复
mymtom 2021-03-12
  • 打赏
  • 举报
回复
JDK 自带的UUID是不会重复的啊。
ggw 2021-03-01
  • 打赏
  • 举报
回复
一般不用。重复是一种可能,无序--导致其不好用。雪花算法可以自行修改,比如设置稍长点。
王扣扣 2021-02-26
  • 打赏
  • 举报
回复
分布式环境下,不推荐使用UUID,使用现成儿的雪花主键多好。
wdubaiyu 2021-02-25
  • 打赏
  • 举报
回复
你要保证不重复就别用别,uuid人家也没有说一定不。 这能讨论出个什么结构
CrazyCoder1992 2021-02-19
  • 打赏
  • 举报
回复
概率很小,如果担心重复可以使用下面两种方法: 1. 雪花算法; 2. 如果业务场景需要ID具备可读性,可由数据库序列保证全局唯一性和可读性,如果是分布式数据库,可以给每个库的序列指定不同的后缀,加大步长避免冲突,如后缀为001,002,步长设置为1000。是一种比较low的解决方案,我们的老项目用过。
Giberson1 2021-01-15
  • 打赏
  • 举报
回复
引用 19 楼 JavaPub-rodert 的回复:
引用 17 楼 Giberson1 的回复:
取决于你的因变量的选择是否准确。
这个怎么说?还请大佬分享解决方案
我给你推荐一套算法:你们不是去前10位吗?你可以试下我这套算法,你去前7位,然后再3位随机数字字符串,看看会不会重复,我感觉我这种重复概率,会比你们的算法小很多
JavaPub-rodert 2021-01-14
  • 打赏
  • 举报
回复 1
就算是雪花算法,在容器化架构中,也可能会有一些问题
JavaPub-rodert 2021-01-14
  • 打赏
  • 举报
回复
引用 17 楼 Giberson1 的回复:
取决于你的因变量的选择是否准确。
这个怎么说?还请大佬分享解决方案
qq_39936465 2021-01-14
  • 打赏
  • 举报
回复
引用 16 楼 JavaPub-rodert 的回复:
没有实践就没有发言权,喷子说话了,欢迎有实战经验的同行展示
uuid为什么会32位就是为了减少重复率,你都擅自截取还谈啥,你截取过了还能是uuid么?
KeepSayingNo 2021-01-13
  • 打赏
  • 举报
回复
uuid 本身包含了时间、机器信息、随机数,这几个还重复,不知道为什么
qq_39936465 2021-01-13
  • 打赏
  • 举报
回复
引用 楼主 JavaPub-rodert 的回复:
UUID 重复问题大讨论 查遍baidu,没人说个正经话,这里讨论一下,结果会整理发到博客。
你先搞清楚uuid的生成机制,不要杞人忧天,重复几率是很小的。
JavaPub-rodert 2021-01-13
  • 打赏
  • 举报
回复
有没有什么成熟的解决方案,分享一下
JavaPub-rodert 2021-01-13
  • 打赏
  • 举报
回复
这个问题是在分布式环境下提出,单机咱不谈了
JavaPub-rodert 2021-01-13
  • 打赏
  • 举报
回复
uuid 我们一般截取前10位进行使用,有网友测试在200w数据时,就会有重复情况,
老紫竹 2021-01-13
  • 打赏
  • 举报
回复
重复是难以避免的,只能通过规则减少重复的几率。特别是在【集群】环境。 机器编号,生成器编号,日期时间,纳秒,本机递增数(如果你id生成器每次sleep一个纳秒,那就不用了),组合在一起,比uuid更好用。
  • 打赏
  • 举报
回复
一般应用根本不需要考虑,如果实在过于谨慎,雪花算法了解下
一只三黄鸡 2021-01-13
  • 打赏
  • 举报
回复
看你用到哪里了,主键?token?还是其他,UUID重复的概率很小,并且如果知道重复,加点时间戳,机器码等,加密下不就好了
sinat_27054329 2021-01-13
  • 打赏
  • 举报
回复
引用 楼主 JavaPub-rodert 的回复:
UUID 重复问题大讨论 查遍baidu,没人说个正经话,这里讨论一下,结果会整理发到博客。
单体应用,量不大用着还可以,毕竟是jdk自带的
Giberson1 2021-01-13
  • 打赏
  • 举报
回复
取决于你的因变量的选择是否准确。
明白畅达 2021-01-13
  • 打赏
  • 举报
回复
加时间戳基本上不会重复了,如果还不行处理后6位
加载更多回复(4)

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧