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