美文网首页
[分布式]SnowFlake算法

[分布式]SnowFlake算法

作者: 程序员驿站 | 来源:发表于2018-05-02 11:04 被阅读120次

背景

现在的服务基本上都是分布式服务,经常会使用生成唯一主键的功能,如何在分布式服务上生成高效、不重复的主键呢

方案

UUID

####  缺:32位有点长
   * 无序
   * 入库性能差,主要是涉及到B+tree的分裂
#### 优:开发简单

数据库自增主键

#### 缺:对数据库严重依赖 性能低

SnowFlake

介绍

twitter提供的一种分布式算法

一共64位bit
第一部分 1bit 始终为0 没有什么实际意义
第二部分 41bit 时间戳精确到毫秒,总共可以容纳140年的时间
第三部分 10bit 工作机器id 高位5bit是数据中心的 地位5bit是工作节点id
第四部分 12bit 自增 同一毫秒内最多可以生成多个全局唯一id 统一毫秒id的数据量 1024*4096

格式:

0 - 0000000000 0000000000 0000000000 0000000000 0 - 00000 - 00000 - 000000000000

优缺点

优:
性能高

相关文章

网友评论

      本文标题:[分布式]SnowFlake算法

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