基于分布式锁 分布式全局唯一ID

生成为唯一id一般通用方案

1.  UUID:如果只考虑唯一性,是可行的。

缺点:

基于分布式锁   分布式全局唯一ID

 基于分布式锁   分布式全局唯一ID

2. 数据库自增主键

基于分布式锁   分布式全局唯一ID

 基于分布式锁   分布式全局唯一ID

 在分布式集群中的缺点:

基于分布式锁   分布式全局唯一ID

3. 基于redis生成全局id策略

因为Redis是单线的天生保证原子性,可以使用原子操作INCR和INCRBY来实现

基于分布式锁   分布式全局唯一ID

 4. snowflake

Twitter的分布式自增ID算法snowflake

基于分布式锁   分布式全局唯一ID

 结构如下:

基于分布式锁   分布式全局唯一ID

基于分布式锁   分布式全局唯一ID

 基于分布式锁   分布式全局唯一ID

 源码:https://github.com/twitter-archive/snowflake

View Code

基于分布式锁   分布式全局唯一ID

 springboot 集成雪花算法:引入糊涂工具包

5.其他

百度开源的分布式唯一ID生成器UidGenerator、

美团开源的subtopic