[发明专利]一种基于SnowFlake算法没有机器标识的ID生成方法、装置在审

专利信息
申请号: 202110579428.6 申请日: 2021-05-26
公开(公告)号: CN113505112A 公开(公告)日: 2021-10-15
发明(设计)人: 肖明睿 申请(专利权)人: 广州宸祺出行科技有限公司
主分类号: G06F16/21 分类号: G06F16/21;G06F16/22
代理公司: 广州云领专利代理事务所(普通合伙) 44441 代理人: 肖云
地址: 510700 广东省广州市黄*** 国省代码: 广东;44
权利要求书: 查看更多 说明书: 查看更多
摘要:
搜索关键词: 一种 基于 snowflake 算法 没有 机器 标识 id 生成 方法 装置
【说明书】:

发明公开了一种基于SnowFlake算法没有机器标识的ID生成方法,基于所述ID生成方法生成的ID由标记位、时间戳部分和自增数部分构成;所述ID生成方法包括以下步骤:获取业务标识和当前时间;确定所述当前时间与预设基准时间的差值,转换所述差值得到当前时间戳;判断当前时间戳是否大于对比时间戳,所述对比时间戳为生成前一ID的时间戳;若当前时间戳大于对比时间戳,则触发自增数生成步骤,基于业务标识和当前时间戳生成自增数,并将当前时间戳替换对比时间戳;若当前时间戳小于对比时间戳,则重复上述步骤直至当前时间戳大于对比时间戳;基于所述标记位、所述当前时间戳和所述自增数生成新的ID。

技术领域

本发明属于计算机的技术领域,具体涉及一种基于SnowFlake算法没有机器标识的ID生成方法、装置。

背景技术

随着互联网的高速发展,人们的工作生活越来越离不开互联网,如网约车、购物,订餐等等。目前大部分的互联网公司将这些数据存放在mysql数据库中。而数据库的每张表都必须有主键,通过一个唯一的ID值来唯一标识每一条数据记录。所以,当程序向数据库中插入一条数据记录时,需要产生一个全局唯一的ID值。

目前应用生成全局唯一性ID,主要有以下方法:

方法一:数据库自增方法,生成ID的动作由数据库本身完成。当程序向数据库中插入一条数据记录时,数据库利用主键的auto_increment来生成全局唯一的递增ID。

方法二:使用uuID作为全局唯一的ID:UUID其自身机制保证了对在同一时空中的所有机器都是唯一的,其用到了以太网卡地址、纳秒级时间、芯片ID码和许多可能的数字。

方法三:借助redis:redis本身性能非常强大,可以利用redis的incr/incrby命令可以生成唯一的递增ID。

方法四:雪花算法:雪花算法的核心是生成一个long类型的数字ID,通过对这64位的二进制形式里面填值,把64位分成几个部分,彼此间互不影响,每部分都有自己的生成规则,这样在一定的简单的大前提下,能保证全局唯一。

雪花算法的几个核心组成部分:(1)1位标识位;(2)39位时间戳;(3)14位机器标识位;(4)10位随机数部分。除了标识位固定,其余的三大块信息可以转换成数字,填充到63位当中,基本可以保证任何时间任何机器生产的任何ID不重复,可以推理出,时间和序列都是不可控的,但是第三位的机器信息是我们可以控制的,也就是说设置好机器信息是分布式ID不重复的关键。

然而,经申请人研究发现,现有雪花算法生成ID存在如下技术缺陷:

现有雪花算法实现id生成部分有【机器标识】,而机器标识又是和机器IP或者MAC地址绑定的,一旦IP地址或者MAC相同,高并发的情况下就存在很大概率的生成的ID重复情况,比如不同局域网部署的机器的ID可能重复,同一台机部署多个应用(docker或者云虚拟主机)。

另一方面,ID地址或者MAC变换(docker或者云虚拟主机的重启或者机器的增删)的时候又需要生成新的【机器标识】,【机器标识】的值也将越来越大,时间久了就容易突破【机器标识】位数限制造成溢出问题。

因此需要一种能保证ID唯一性,同时保证高性能,以及支撑高并发量的ID生成方法。

发明内容

本发明的目的是要解决上述的技术问题,提供一种测绘数据的管理方法及装置。

为了解决上述问题,本发明按以下技术方案予以实现的:

第一方面,本发明提供了一种基于SnowFlake算法没有机器标识的ID生成方法,基于所述ID生成方法生成的ID由标记位、时间戳部分和自增数部分构成;所述ID生成方法包括以下步骤:

获取业务标识和当前时间;

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

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

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

×

专利文献下载

说明:

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

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

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

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

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

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

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

钻瓜专利网在线咨询

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

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