首页 新闻 搜索 专区 学院

多人使用同一方法生成流水碼怎麼防止重碼

0
[已解决问题] 解决于 2020-01-16 15:29

當多人同時調用方法生成16進制的流水碼時怎麼防止重碼

消逝的風的主页 消逝的風 | 菜鸟二级 | 园豆:204
提问于:2020-01-16 08:52
< >
分享
最佳答案
1

同时就有可能重复,加锁的原理就是不同时。第二个方案就是参照UUID咯,无限大的时候就不可能重复,流水码长一点

奖励园豆:5
但行好事-莫问前程 | 菜鸟二级 |园豆:254 | 2020-01-16 09:01

你指的加鎖是指生成流水碼時加鎖嗎?以多線程那種方式嗎

消逝的風 | 园豆:204 (菜鸟二级) | 2020-01-16 09:11

@消逝的風: 根据实际情况来的,我说的加锁只是一个方案,你可以在接口处加锁,可以方法加锁,网关加锁,最好的当然是你生成流水码的地方加锁,粒度越小越好

但行好事-莫问前程 | 园豆:254 (菜鸟二级) | 2020-01-16 09:16

@但行好事-莫问前程: 好的,了解

消逝的風 | 园豆:204 (菜鸟二级) | 2020-01-16 09:18
其他回答(3)
1

可以参考一下分布式ID生成器的实现原理,例如Snowflake

naji | 园豆:202 (菜鸟二级) | 2020-01-16 09:22
1
yytxdy | 园豆:1358 (小虾三级) | 2020-01-16 09:23
1

好要看你们公司并发量吧,不大的话队列就好了,大就上锁

小小咸鱼YwY | 园豆:2620 (老鸟四级) | 2020-01-16 09:27
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册