终极版:分布式唯一ID的几种生成方案

 

 

三、雪花算法

核心思想:把64-bit分别划分成多段,分开来标示机器、时间、某一并发序列等,从而使每台机器及同一机器生成的ID都是互不相同。

PS:这种结构是雪花算法提出者Twitter的分法,但实际上这种算法使用可以很灵活,根据自身业务的并发情况、机器分布、使用年限等,可以自由地重新决定各部分的位数,从而增加或减少某部分的量级。比如:百度的UidGenerator、美团的Leaf等,都是基于雪花算法做一些适合自身业务的变化。

下面介绍雪花算法的几种不同优化方案:

1. Twitter的snowflake算法

核心思想是:采用bigint(64bit)作为id生成类型,并将所占的64bit 划分成多段。

其结构如下:

终极版:分布式唯一ID的几种生成方案

Twitter的snowflake结构

 

终极版:分布式唯一ID的几种生成方案

snowflake每个字段的含义



作者:猿码之家
链接:https://www.jianshu.com/p/4ba1c5e8c185
来源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。