Twitter snowflake算法

Twitter-Snowflake为不同服务提供全局的uuid,类似于分布式的mysql auto_increment机制,uuid为64位整数,产生器可以多服务部署,非常利于扩展。

snowflake-64bit

41bit为时间戳,10bit为工作机器id(可以使用etcd、mysql等实现工作机器服务的唯一性),12bit为同一毫秒内的序列号,如果同一毫秒内使用完毕,则等待下一毫秒从0开始计算。

github上有多种语言的实现。原始的Twitter采用的是scala语言,go的开源实现:https://github.com/sdming/gosnow/单机版,核心算法 或者 https://github.com/gonet2/snowflake 基于rpc调用机制,使用etcd

发表评论

您的电子邮箱地址不会被公开。 必填项已用*标注