美文网首页
分布式id

分布式id

作者: 张某某xyz | 来源:发表于2021-08-25 15:56 被阅读0次

20210825

首先介绍下代理主键和业务主键

  • 代理主键:表中单独建个id字段作为主键
  • 业务主键:使用有业务含义的字段作为主键,如身份证号码

分布式ID的难点

保证多个节点生成的id不重复,如订单服务有3个节点,这3个节点在创建订单时订单id不能重复

解决方法有:

UUID, 雪花算法

UUID

最简单的方式
优点:生成方式简单 UUID.randomUUID().toString()
缺点:长度太长了,是16字节

雪花算法

总长度1+41+12+10=64bit=8字节(比UUID短一半)

  • 41bit的事件戳和10bit的机器id:将出现重复id的范围缩小到同一台机器的同一毫秒内
  • 最后12bit的序列号:就是解决同一台机器的同一毫秒内出现重复id

缺点:当调整服务器的时间时可能造成 41bit的事件戳 出现重复

readis、mysql集群这些利用外部服务提供id的做法不要去用,因为成本大

参考

相关文章

网友评论

      本文标题:分布式id

      本文链接:https://www.haomeiwen.com/subject/gpnsiltx.html