京东面试题 – 有一个生成唯一串的需求,并发请求量非常大,该如何实现?

面试题分类: Architecture京东面试题 – 有一个生成唯一串的需求,并发请求量非常大,该如何实现?
0
Ceker 管理员 asked 4年 ago

多个机器,多个JVM,要生成唯一串,并发量非常大,该如何实现?
面试官说,他们是借鉴表锁和行锁实现的。


FavoriteLoading添加本文到我的收藏
魔尼尼 管理员 replied 4年 ago

他们这个表锁和行锁是用数据库来实现的吗?

2 Answers
0
陈太旷 管理员 answered 1年 ago

1.每个节点上可以使用UUID作为唯一串或者构建生成唯一串的子服务,提供各节点调用也行
2.每一次性生成批次串数据在集合中,类似池一样的设计思路
 


FavoriteLoading添加本文到我的收藏
0
lvxing 管理员 answered 7月 ago

twitter利用zookeeper实现了一个全局ID生成的服务snowflake

  1. 时间–用前面41 bit来表示时间,精确到毫秒,可以表示69年的数据

  2. 机器ID–用10 bit来表示,也就是说可以部署1024台机器

  3. 序列数–用12 bit来表示,意味着每台机器,每毫秒最多可以生成4096个ID             

     

序列数利用ZK的持久化节点版本号生成得到


FavoriteLoading添加本文到我的收藏

return top