美文网首页
分布式ID生成方案小结

分布式ID生成方案小结

作者: Aplha | 来源:发表于2020-09-22 16:42 被阅读0次

    分布式ID生成方案

    自增

    数据库自增ID

    • 基于数据库自增ID

    • 性能低

      • 每次获取都要请求数据库
    • 可靠性差

      • 单机宕机不可用

    数据库多主模式

    • 解决单机性能低和可靠性差问题

    • 单独给每个数据库实例配置不同起始值和步长

    • 扩展性差

      • 扩展多主集群时需重新规划起始值和步长,易出现重复ID

    号段模式

    • 每次从数据库获取ID区间,本机缓存
    • 分布式ID生成服务宕机或重启导致ID区间丢失,造成ID空洞

    Redis的incr命令

    • RDB持久化,重启Redis导致ID重复

    滴滴TinyId

    • 号段模式基础上将自增逻辑转移到业务应用本地

    雪花算法

    long类型64bit

    • 标识位1bit
    • 时间戳41bit
    • 工作机器ID10bit
    • 序列号位12bit

    百度(uid-generator)

    • workId占22bit

      • 自定义workId生成策略
      • 默认启动时数据库插入数据获取自增ID,数据由host和port组成
    • 时间占28bit(单位是秒)

    • 序列号位13bit

    美团(Leaf)

    • 既支持号段也支持雪花算法
    • workId使用ZK顺序节点生成
    分布式ID生成方案.png

    相关文章

      网友评论

          本文标题:分布式ID生成方案小结

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