分布式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命令来实现原子性的自增与返回

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值