首页 > 代码库 > 通过rest接口获取自增id (twitter snowflake算法)

通过rest接口获取自增id (twitter snowflake算法)

1.  算法介绍

参考 http://www.lanindex.com/twitter-snowflake%EF%BC%8C64%E4%BD%8D%E8%87%AA%E5%A2%9Eid%E7%AE%97%E6%B3%95%E8%AF%A6%E8%A7%A3/

Twitter-Snowflake算法产生的背景相当简单,为了满足Twitter每秒上万条消息的请求,每条消息都必须分配一条唯一的id,这些id还需要一些大致的顺序(方便客户端排序),并且在分布式系统中不同机器产生的id必须不同。

Snowflake算法核心

时间戳工作机器id序列号组合在一起

技术分享

2.  功能实现

基于beego 框架 

代码详见: https://github.com/mtour/restsnowflake

技术分享

个人觉得此算法设计的很巧妙,可以方便记录按照时间排序,10位的机器id,足以支撑1024个节点

 

通过rest接口获取自增id (twitter snowflake算法)