snowflake 64位id 自增算法
2016-06-14 09:34
288 查看
在分布式系统中生成一个64位id,并保持id 大致顺序,需求为每秒生成100万的id。
为了满足 分布式系统、顺序、每秒生成100万。算法把 64位id 分为 0位保留,1--12位 为序列号,13--23位为机器id,24--63位为毫秒级时间,64位保留。
分布式用13-23位的机器id 保证,顺序用24--63位的时间保证,序列号1--12位 保证没毫秒内可以并发生成12位的序列号,这样就能保证单台机器每秒可以生成1000x2^12个序列号。这样就能保证在分布式系统中高并发的生成id。
为了满足 分布式系统、顺序、每秒生成100万。算法把 64位id 分为 0位保留,1--12位 为序列号,13--23位为机器id,24--63位为毫秒级时间,64位保留。
分布式用13-23位的机器id 保证,顺序用24--63位的时间保证,序列号1--12位 保证没毫秒内可以并发生成12位的序列号,这样就能保证单台机器每秒可以生成1000x2^12个序列号。这样就能保证在分布式系统中高并发的生成id。
相关文章推荐
- Linux TCP队列相关参数的总结
- C结构体、C++结构体 和 C++类的区别
- AjaxToolKit之Rating控件的使用方法
- ubuntu 14.04的rtl8723be无线网卡不稳定
- 整体二分<QAQ> && CDQ分治
- Android layer-list与shape的使用
- 浅谈html5增强的页面元素
- thinkphp连接多数据库
- Android_ViewPager
- android界面视觉设计规范
- Mac OS X 配置环境变量
- 【Swift】获取设备信息
- Linux 命令行应用实例
- Leetcode No.104 Maximum Depth of Binary Tree 遍历二叉树的深度
- Mysql数据库insert into select 单表插入常量
- 科研的常见科研思路与论文描述方法
- HashMap和Hashtable的区别
- 迁户风波
- 对《软件工程》这门课的总结
- Chrome浏览器插件