美文网首页
全局唯一ID生成算法

全局唯一ID生成算法

作者: 思维忒 | 来源:发表于2020-07-09 14:56 被阅读0次

全局唯一ID算法需要满足的需求:

1.全局唯一
2.单调递增
3.高可用性(高QPS、低延迟等)
4.某些场景还要求ID非连续,防止被构造ID爬取信息

SnowFlake算法的不足:

1.依赖服务器时间,如果各个服务器时间不一致,或时间发生回拨会导出ID出错
2.单位时间生成ID的数量和可以使用的时间存在瓶颈,不适合某些场景
3.获取系统时间性能相对较差

美团Leaf-segment算法:

biz_tag:用来区分不同业务
max_id:该biz_tag已分配的最大ID
step:每次分配号段的长度

读一次DB理论上可以生成step个ID,可以通过双buffer缓解多个节点同时读DB的压力

缺点:
1.ID不是严格递增
2.号码不够随机

美团Leaf-snowflake算法:
1.通过ZooKeeper维护workerid
2.节点启动是检测时钟

百度UidGenerator算法:
1.通过数据库自增维护workerid
2.预生产uid来减少调用时间
3.老实说我没怎么看懂是咋借用未来时间的。。。

参考连接:
https://tech.meituan.com/2017/04/21/mt-leaf.html
https://www.infoq.cn/article/wechat-serial-number-generator-architecture
https://github.com/baidu/uid-generator/blob/master/README.zh_cn.md

相关文章

  • Redis-全局唯一ID

    零、本文纲要 一、全局唯一ID 二、Redis生成全局唯一ID1、snowflake算法全局唯一ID策略2、Red...

  • 全局唯一ID生成算法

    全局唯一ID算法需要满足的需求: 1.全局唯一2.单调递增3.高可用性(高QPS、低延迟等)4.某些场景还要求ID...

  • 2019-10-12 分布式系统中生成全局唯一id

    高并发分布式系统中生成全局唯一Id汇总 https://gitee.com/pabooproject/Leaf雪花算法

  • UUID

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

  • 设计分布式唯一id生成

    1. 生成全局唯一id 什么时候需要生成全局唯一id db不帮你自动生成的时候。比如: db做了分库分表,没帮你自...

  • 生成全局唯一id的几种方式

    生成全局唯一id的几种方式: 1、uuid生成全球唯一id,生成方式简单粗暴,本地生成,没有网络开销,效率高;缺点...

  • 分布式系统中生成全局唯一ID方案

    本文主要介绍在一个分布式系统中, 如何去生成全局唯一的 ID。 前言 单纯的生成全局ID并不是什么难题,生成全局的...

  • 全局唯一id生成snowflake算法golang实现

    snowflake.go 单元测试snowflake_test.go 把代码都放到同一个文件夹下,运行

  • 04.分布式系统的id生成方式

    分布式ID需要满足那些条件? 全局唯一:必须保证ID是全局性唯一的,基本要求高性能:高可用低延时,ID生成响应要块...

  • 全局唯一ID

    生成全局唯一ID 通过MySQL的自增主键,作为唯一id; 通过内存中变量AtomicLong的自增来得到唯一id...

网友评论

      本文标题:全局唯一ID生成算法

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