[发明专利]一种基于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生成方法包括以下步骤:
获取业务标识和当前时间;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于广州宸祺出行科技有限公司,未经广州宸祺出行科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202110579428.6/2.html,转载请声明来源钻瓜专利网。