[发明专利]一种在分布式系统内生成唯一ID的方法在审

专利信息
申请号: 201611091996.7 申请日: 2016-12-01
公开(公告)号: CN106776932A 公开(公告)日: 2017-05-31
发明(设计)人: 余杨志;熊烽;胡波 申请(专利权)人: 湖北荆楚网络科技股份有限公司
主分类号: G06F17/30 分类号: G06F17/30
代理公司: 武汉天力专利事务所42208 代理人: 冯卫平
地址: 430000 湖*** 国省代码: 湖北;42
权利要求书: 查看更多 说明书: 查看更多
摘要:
搜索关键词: 一种 分布式 系统 生成 唯一 id 方法
【说明书】:

技术领域

发明涉及一种ID生成的方法,特别是一种在分布式系统内生成唯一ID的方法。

背景技术

在分布式系统中,如何快速高效的生成系统唯一ID,是在设计一个系统的时候经常遇到的问题。现有技术中生成ID的方法主要有以下三种,以适应不同的场景、需求以及性能要求,但都存在各自的缺陷。

1.数据库自增长序列

利用数据库的自增长序列实现,实现简单,ID有序,对分页和排序很有帮助。但是不同的数据库,序列语法和实现各不相同,数据库迁移、多表合并、以及数据库分表分库时非常麻烦。并且在单个数据库或者读写分离或一主多从的情况下,只有一个库生成序列,有单点故障的风险。

2.UUID

UUID代码简单,生成ID性能很好,基本不会有性能问题,且UUID全球唯一,在数据迁移,数据合并和数据库变更等情况下,都可以从容应对。但是UUID字符无序,无法保证趋势递增,对数据分页性能产生影响。

3.Redis生成ID

利用Redis的单线程来保证数据安全,通过原子操作INCR和INCRBY来实现。同时可通过Redis的集群实现更高的吞吐量和单点故障的问题。使用Redis来生成ID不依赖数据,方便灵活,且性能优于数据库。且生成的ID是有序的,对分页和排序有帮助,但是必须依赖于第三方工具Redis,增加了系统集成的复杂度。

发明内容

本发明的目的在于提供一种在分布式系统内生成唯一ID的方法,运用该方法生成ID不仅效率高,不会对大数据量的查询和分页造成性能影响而且与系统集成便捷。

实现本发明目的的技术方案是:一种在分布式系统内生成唯一ID的方法,其特征在于:包括以下步骤:

1.1.获取服务器设定的默认基础时间,将该默认基础时间换算成二进制并做位移填充运算,将其左移24位;

1.2.获取业务类型数值,将该业务类型数值换算成二进制并做位移填充运算,将换算得来的二进制数值左移20位;

1.3.获取服务类型数值,将该服务类型数值换算成二进制并做位移填充运算,将换算得来的二进制数值左移16位;

1.4.获取服务器号数值,将该服务器号数值换算成二进制并做位移填充运算,将换算得来的二进制数值左移12位;

1.5.获取毫秒内自增数值,将该毫秒内自增数值换算成二进制;

1.6.将步骤1.1~1.5运算得到的5项二进制进行或运算,得到二进制格式的ID值,将该二进制格式的ID值换算成十进制得到唯一ID值。

本发明的优点在于:1.生成ID效率高,能够满足高并发系统的业务需求。2.生成的ID为数字且有序增加,不会对大数据量的查询和分页造成性能影响。3.本方法可以跟系统快速无缝集成,不需要第三方工具库和第三方软件的支持,减少系统集成难度。

附图说明

图1是本方法的逻辑步骤流程图。

具体实施方式

一种ID生成的方法,特别是一种在分布式系统内生成唯一ID的方法,其特征在于:包括以下步骤:

1.1.获取服务器设定的默认基础时间,将该默认基础时间换算成二进制并做位移填充运算,将其左移24位;

1.2.获取业务类型数值,将该业务类型数值换算成二进制并做位移填充运算,将换算得来的二进制数值左移20位;

1.3.获取服务类型数值,将该服务类型数值换算成二进制并做位移填充运算,将换算得来的二进制数值左移16位;

1.4.获取服务器号数值,将该服务器号数值换算成二进制并做位移填充运算,将换算得来的二进制数值左移12位;

1.5.获取毫秒内自增数值,将该毫秒内自增数值换算成二进制;

1.6.将步骤1.1~1.5运算得到的5项二进制进行或运算,得到二进制格式的ID值,将该二进制格式的ID值换算成十进制得到唯一ID值。

实施例、

1)得到当前时间的毫秒数:762824999253053440;

2)假定系统中设定的基础时间毫秒数为1288834974657,因此减去基础时间毫秒数:762824999253053440 - 1288834974657 = 762823710418078783;

3)假设系统业务类型、服务类型、所属服务器分别为2、9、1,获取当前的业务类型、服务类型、服务器号数值;

4)获取毫秒内自增号 5;

5)计算id:

下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。

该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于湖北荆楚网络科技股份有限公司,未经湖北荆楚网络科技股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服

本文链接:http://www.vipzhuanli.com/pat/books/201611091996.7/2.html,转载请声明来源钻瓜专利网。

×

专利文献下载

说明:

1、专利原文基于中国国家知识产权局专利说明书;

2、支持发明专利 、实用新型专利、外观设计专利(升级中);

3、专利数据每周两次同步更新,支持Adobe PDF格式;

4、内容包括专利技术的结构示意图流程工艺图技术构造图

5、已全新升级为极速版,下载速度显著提升!欢迎使用!

请您登陆后,进行下载,点击【登陆】 【注册】

关于我们 寻求报道 投稿须知 广告合作 版权声明 网站地图 友情链接 企业标识 联系我们

钻瓜专利网在线咨询

周一至周五 9:00-18:00

咨询在线客服咨询在线客服
tel code back_top