golang实现基于snowflake算法的ID生成器

github链接: https://github.com/gitstliu/go-id-worker
<https://github.com/gitstliu/go-id-worker>

Snowflake算法

Snowflake 算法是Twitter的分布式ID自增算法,用于生成可以跨数据中心的全局唯一ID(不连续)。
SnowFlake算法生成id的结果是一个64bit大小的整数。

bit说明

1位 ,不用。固定是0
41位 ,记录毫秒级时间戳
5位 ,数据中心ID (用于对数据中心进行编码)
5位 ,WORKERID (用于对工作进程进行编码)
12位 ,序列号。用于同一毫秒产生ID的序列
所以理论上一个WORKER一毫秒最多能产生2的12次方个ID(一般来说足够用了)。

引入
import ( "github.com/gitstliu/go-id-worker" )
创建IDWorker 并使用
currWoker := &idworker.IdWorker{} currWoker.InitIdWorker(1000, 1) newId :=
currWoker.NexiId()

友情链接
KaDraw流程图
API参考文档
OK工具箱
云服务器优惠
阿里云优惠券
腾讯云优惠券
华为云优惠券
站点信息
问题反馈
邮箱:[email protected]
QQ群:637538335
关注微信