美文网首页
全局ID生成

全局ID生成

作者: 格林哈 | 来源:发表于2020-08-29 08:45 被阅读0次

    UUID

    • uuid 由及部分组合
      • 当前日期和时间
      • 时钟序列
      • 全局唯一的IEEE机器识别码
    • 优势
      • 简单,易用
    • 不足
      • 占用空间大,字符串本身无法加工,可读性不强
      • 有的版本,会暴露硬件地址,被黑客利用

    ID 生成表模式

    • 使用id生产表
      • 如mysql
    
    create table tickets64
    (
        id  bigint auto_increment
            primary key,
        sub char null,
        constraint tickets64_sub_uindex
            unique (sub)
    );
    
    --在同一个事务提交 
    replace into tickets64(sub) values ('a');
    select `last_insert_id`()
    
    • 高可用解决单点故障可以两台数据库服务器生成ID,通过区分auto_increment的起始值和步长来生成奇偶iD
    • 简单易用,不足时使用了 mysql replace into语法

    Snowflake(雪花算法)

    • 优点
      • 高性能,低延迟,独立的应用,按时间排序
    • 缺点
      • 需要独立的开发部署

    结合缓存

    • 可以采用id生成表模式,成批获取id,如把1000个放到本地缓存,这样client使用的时候可以进一步提升性能。
    • 优点
      • 高性能,低延迟
    • 缺点
      • id不连贯

    Leaf——美团点评分布式ID生成系统

    相关文章

      网友评论

          本文标题:全局ID生成

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