owflake算法生成唯一ID方案回顾与优化.pdfVIP

  • 0
  • 0
  • 约小于1千字
  • 约 1页
  • 2026-06-10 发布于北京
  • 举报

owflake算法生成唯一ID方案回顾与优化.pdf

《011_Snowflake生产方案:基于ZK来集群机器ID》

公布的基于数据库的一个方案,以及他的一个高并发变种方案(阿里开源了一个数据

库中间件,TDDL,唯一ID生成方案,思想,号段思想),始终还是强依赖数据库去生成ID

的,太重了

思想:64个bit位,最1个bit是0,41位放时间戳(到毫秒单位,最多使用69

年),10位放机器标识(最多把snowflake程序部署在1024台机器上),12位放序号(每毫

秒,每台机器,可以顺序生成4096个ID)

snowflake示例代码,网上多的是,二进制位运算的操作,几十行代码

全局递增不能保证-局部递增可以保证-每台机器的ID都是越来越大的,时间戳越来

越大,同一毫秒的序号也是越来越大的,多台机器之间生成的ID不能保证全局单调递

增的

机器id从哪儿来?少量的机器可以硬编码直接在磁盘文件里写,但是这样非常的不灵活,

意味着扩容缩容,都有很多手工成本

所以这块可以采用zk的持久化顺序节点来实现,每台机器启动都去zk指定目录下创建持久

化的顺序节点,拿回来自己的顺序号,就是自己的机器id了,直接写入本地磁盘文件,下

次就直接用了,不需要每次都zk,这就完美解决

文档评论(0)

1亿VIP精品文档

相关文档