[发明专利]全局唯一ID结构及生成方法在审

专利信息
申请号: 201711094095.8 申请日: 2017-11-08
公开(公告)号: CN107864233A 公开(公告)日: 2018-03-30
发明(设计)人: 张国勇;蒋文倩 申请(专利权)人: 千寻位置网络有限公司
主分类号: H04L29/12 分类号: H04L29/12
代理公司: 上海市海华永泰律师事务所31302 代理人: 包文超
地址: 200433 上海市杨浦*** 国省代码: 上海;31
权利要求书: 查看更多 说明书: 查看更多
摘要:
搜索关键词: 全局 唯一 id 结构 生成 方法
【说明书】:

技术领域

发明涉及数据处理技术领域,具体涉及一种全局唯一ID生成方法。

背景技术

全局唯一ID值产生的背景是为了满足记录全局唯一订单、支付的流水号。每个流水号必须分配一条唯一的ID,而且需要有一定的顺序,方便客户端排序;并且在分布式系统中不同的机器产生的ID必须唯一,支持高并发,每秒能产生足够多的全局唯一ID;全局唯一ID要带有时间标识,方便判断序号的生成时间。

电商系统中通常需要生成如订单号、支付的流水号等这样的全局唯一ID,要求毫秒级的快速响应,生的的ID有连续性且体积小(8字节为最佳),且不同的机房,服务器,同一时间仍然能够保持全局唯一。常规的生成方式如java自带的生成全局唯一ID的方式UUID(Universally Unique IDentifier,通用唯一识别码)有16字节,占用空间大。本发明借鉴twitter的策略,但摒弃ZK等机制,单机启动时初始化,从数据库/配置中心获取属于自己的工作机器ID(即,机房ID和机器ID),此后再也无须和配置中心打交道,完全基于本机的算法生产序号。

Twitter Snowflake生成的唯一ID为8字节,其中包括1bit的符号位,41bit的毫秒时间,10bit的机房ID和机器ID,12bit的时间戳,把时间戳,工作机器ID,序列号组合在一起,虽然可用性强,速度快,但其中的机房ID和机器ID需要要worker启动时从zookeeper中获取,需要引入zookeeper和独立的snowflake专用的服务器。

Twitter Snowflake方案中为保证机器ID的唯一性,在Worker启动的时候对外部有依赖(需要从Zookeeper获取唯一Worker号),因此使用Twitter Snowflake获取唯一序列号,需要搭建Zookeeper集群。

发明内容

本发明解决了以下技术问题:

1、产生的ID全局唯一,不同的机器产生的ID也不能重复;

2、分布式;

3、支持高并发,每秒能产生足够多的ID;

4、ID有序,方便客户端排序等;

5、可扩展,支持生成策略调整;

6、可持续,能支撑未来数年的全局唯一ID的生成;

7、高性能;

8、带有时间标识,能定位全局唯一ID的生成时间。

为了解决上述技术问题,本发明采用以下技术方案:

一种全局唯一ID结构,包括首位、时间戳、工作机器ID和序号,其中首位有1位,时间戳有41位,工作机器ID有10位,序号有12位,所述工作机器ID包括机房ID和机器ID。

进一步地,所述首位为0,为保持产生用户ID的自增特性。

进一步地,所述10位工作机器ID中5位保存机房ID,5位保存机器ID。

一种全局唯一ID生成方法,包括以下步骤:

步骤1,工作ID分配器提前录入机器IP;

步骤2,单机启动初始化时,从工作ID分配器获取当前机器IP以及机器IP与机房ID、机器ID的对应列表,得到当前机器唯一的机房ID和机器ID;

步骤3,基于单机的算法生成序号;

步骤4,获取当前毫秒数,减去基准时间,得到时间毫秒数;

步骤5,生成当前毫秒数下的序号,如果序号超过当前最大数,则获取下一毫秒数;

步骤6,将获取的下一毫秒数左移22位,机房ID左移17位,机器ID左移12位之后再与序号按位或,生成全局唯一ID。

进一步地,所述工作ID分配器包括数据库或者配置中心。

进一步地,通过调整机房ID和机器ID来调整所述全局唯一ID生成方法。

本发明的有益效果在于,单机启动初始化时,从数据库/配置中心获取属于自己的工作机器ID,此后再也无须和配置中心打交道,完全基于本机的算法生产序号。考虑到数据库/配置中心在业务中一定会使用到,因此本发明并不需要额外的开销。

附图说明

图1是全局唯一ID结构图。

图2是工作ID分配器分配工作机器ID示意图。

具体实施方式

本发明提供了一种全局唯一ID结构及生成方法,单机启动初始化时,从数据库/配置中心获取属于自己的机房ID和机器ID,此后再也无须和配置中心打交道,完全基于本机的算法生产序号。此方式不需要搭建Zookeeper集群,减少了生成全局唯一ID的成本。下文中,结合附图和实施例对本发明作进一步阐述。

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

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

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

×

专利文献下载

说明:

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

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

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

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

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

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

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

钻瓜专利网在线咨询

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

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