分布式Id的5种应用场景

  1. UUID

优点:(1)使用简单(2)无需引入额外组件

缺点:(1)无序,无法实现范围查询(2)插入操作比自增ID差不少(3)建议用自增ID+UUID (自增ID作为主键,UUID作为业务的唯一标识)

测试发现,自增ID的性能比UUID的快了四倍

  1. 借助Redis进行生成(依靠单线程的特性)

使用Incr指令

优点:(1)使用简单(2)性能不错

缺点:(1)需要引入额外组件(2)强依赖Redis

  1. 利用数据库的自增能力

优点:(1)使用简单(2)对代码没有侵入性

缺点:(1)扩展性不佳 (2)非单调递增,只能趋势递增

如果用这个方案,建议步长设置大点

  1. 号段模式

优点:取得号段之后,不再强依赖数据库

缺点:趋势递增的,而非单调递增

  1. 雪花算法

应用案例

优点:(1)不依赖任何中间件(2)性能好(3)单调递增

缺点:(1)依赖时钟的一致性(2)时钟回拨会有问题

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值