美文网首页
分布式唯一 ID 生成方案

分布式唯一 ID 生成方案

作者: 写代码的杰西 | 来源:发表于2021-05-17 13:44 被阅读0次

1、uuid
优点:代码简单 迁移容易
缺点: 无法保证递增。字符串存储,查询效率慢。存储空间大

2、mysql主键自增
优点:数字化id递增;查询效率高;
缺点:存在单点问题。数据库压力大

3、mysql多实例主键自增


image.png

优点:解决单点问题;
缺点:扩容不好扩;

4、雪花算法
雪花算法生成64位二进制正整数,然后转为整数


image.png

1位标识符:始终是0
41位时间戳:41位时间截不是存储当前时间的时间截,而是存储时间截的差值(当前时间截 - 开始时间截 )得到的值,这里的的开始时间截,一般是我们的id生成器开始使用的时间,由我们程序来指定的
10位机器标识码:可以部署在1024个节点,如果机器分机房(IDC)部署,这10位可以由 5位机房ID + 5位机器ID 组成
12位序列:毫秒内的计数,12位的计数顺序号支持每个节点每毫秒(同一机器,同一时间截)产生4096个ID序号

优点:自增;灵活度高;性能好;
缺点:依赖服务器时间,时间回调会导致重复生成id

5、redis生成
利用redis原子自增,一般算法:年+天+小时+redis自增

有点:可读;自增;
缺点:占用redis带宽

相关文章

  • 算法

    凑单算法——基于Graph Embedding的bundle mining 分布式系统唯一ID生成方案汇总

  • 生成分布式序列ID

    生成分布式序列ID 介绍 在很多分布式系统中,需要生成唯一的id。如在分库分表的情况下,给某个逻辑表生成唯一id。...

  • 2020-03-01 关于分布式ID生成策略相关文章收集。

    网上已有比较详细的文章,就直接收藏链接即可: 关于各种方案简介:浅谈分布式唯一ID的几种生成方案 各种具体方案介绍...

  • 分布式唯一Id(雪花算法),原理+对比+方案

    集群高并发情况下如何保证分布式唯一全局Id生成 为什么需要分布式全局唯一Id,以及分布式Id的业务需求 在复杂分布...

  • 基于Twitter的snowflake分布式ID生成,改成可集群

    ID生成方案,基于twitter的snowflake分布式ID生成改造,在集群环境中多实例自动分配snowflak...

  • 分布式唯一ID生成方案

    每个公司的业务场景不同,生成唯一ID、序列号或者单号的方案也都不一样,这边简单列举一些常见的方案: 一、 数据库自...

  • 分布式唯一 ID 生成方案

    1、uuid优点:代码简单 迁移容易缺点: 无法保证递增。字符串存储,查询效率慢。存储空间大 2、mysql主键自...

  • 从给apache sharding-sphere提交的issue

    很多的分布式系统的唯一ID都是基于雪花算法生成的,apache sharding-sphere的分布式ID也是采用...

  • id-generator 分布式ID生成器

    1、概述 id-generator分布式ID生成器, 解决在分布式系统唯一性标识生成复杂、不统一的问题,如数据库分...

  • UUID

    IdWorker.java 高并发分布式系统中生成全局唯一Id汇总 Twitter的分布式自增ID算法snowf...

网友评论

      本文标题:分布式唯一 ID 生成方案

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