分布式id生成相关

1 、利用全局的一张表  但是并发很大就有瓶颈

2、利用uuid 不适合做主键 太长

3、利用 业务编号+时间戳  但是高并发也会重复

4、snowflake算法  twitter开源的  (64位的long型变量来保存)

第一段 1bit:不用,因为我们生成的都是正数 所以统一是0

第二段:41bit:标识的是时间戳 单位是毫秒  41bit可以标识的数字多达2的41次方-1 也就是69年的时间

第三段:10bit 记录机器id 标识服务最多可以部署在2的10次方台机器上 也就是1024台机器  但是有五位是机房id,

所以最多可以有2的5次方台机器和2的五次方个机房

第四段: 12bit 这个记录同一毫秒内不同的id 12bit 最大的整数是4096 也就是说可以用这个12bit来区分同一毫秒内的4096个不同的id

5、可以利用Redis中的incr命令来实现原子性的自增与返回


版权声明:本文为huanglei_hacker原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。