美文网首页
分布式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