[发明专利]分布式ID生成方法及系统在审
申请号: | 202010388539.4 | 申请日: | 2020-05-09 |
公开(公告)号: | CN111580992A | 公开(公告)日: | 2020-08-25 |
发明(设计)人: | 金家芳;李宁;董朱明;张彦 | 申请(专利权)人: | 上海维信荟智金融科技有限公司 |
主分类号: | G06F9/54 | 分类号: | G06F9/54;H04L29/12 |
代理公司: | 上海知义律师事务所 31304 | 代理人: | 杨楠 |
地址: | 200081 上海市虹*** | 国省代码: | 上海;31 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 分布式 id 生成 方法 系统 | ||
本发明公开了一种分布式ID生成方法及系统,其中,方法包括如下步骤:S1用于接收客户端发送的ID生成请求的步骤;S2用于根据ID生成请求获取当前时间并调用ID生成器的步骤;S3用于根据ID生成器预设的规则生成一个或多个分布式ID的步骤。这样,本发明所提供了一种分布式ID生成方法及系统,针对现有技术存在的缺陷,以REST服务的方式,提高了分布式ID生成的性能和效率,调用者可以根据自己业务需要选择合适的ID生成方式。
技术领域
本发明涉及计算机软件技术领域,尤其涉及一种分布式ID生成方法及系统。
背景技术
随着互联网技术的发展,项目越来越复杂,微服务架构和分布式服务部署已经必不可少,人们在不同业务场景下的产生的进程越来越频繁,在不同的业务需求中需要一些唯一的ID,作为某个数据的标识,如何使这些ID或者主键满足分布式要求,从进行有效的管理是急需解决的问题。目前主要的解决方案有六种:第一种是使用UUID,它的优势在于通过本地生成,不经过网络IO,效率高,但有无序,不是自增序列,生成ID太长,占用空间比较多等缺点;第二种是使用数据库主键自增,优势在于简单方便,有序递增,方便排序和主键索引查找,但有并发性能弱等缺点;第三种是使用redis,优势在于性能笔数据库主键自增的高,能满足有序递增,但有存在数据丢失,生成ID重复的风险,依赖于Redis等缺点;第四种是使用zookeeper,有严重依赖Zookeeper集群,并且性能低等缺点;第五种是使用数据库分段和服务缓存ID,优势在于比主键递增性能高,保证趋势递增,宕机了服务端还可以使用本地step取到的ID,但是依然会影响ID生成;第六种是使用snowFlake,优势在于高性能,低延时,分布式环境保证唯一,趋势性递增,不依赖于数据库或者其他中间件,但需要独立的开发和部署,依赖于机器的时钟。
发明内容
本发明的目的是提供一种分布式ID生成方法及系统。
本发明提供了一种分布式ID生成方法,包括如下步骤:
S1用于接收客户端发送的ID生成请求的步骤;
S2用于根据ID生成请求获取当前时间并调用ID生成器的步骤;
S3用于根据ID生成器预设的规则生成一个或多个分布式ID的步骤。
所述S3用于根据ID生成器预设的规则生成一个或多个分布式ID的步骤包括:S31用于提取本地时间戳、获取工作机器ID、通过自增任意值生成序列号的步骤;S32用于根据时间戳、工作机器ID及序列号生成请求所对应的ID的步骤;S33用于将对应ID发送至后台的步骤。所述对应ID的第一位标识为正负数和41位的时间戳,10位的机器标识码,自增任意值分别转换为二进制依次排列。所述对应ID根据机器码的编号进行压缩,自动生成为19位数字。用于以datetime格式时间加上调用者在同一毫秒内设定长度的序号,当序列号到达长度为设定长度的最大值时,则到下一秒获取ID的步骤。用于以timestamp时间戳格式时间加上调用者在同一毫秒内设定长度的序号,当序列号到达长度为设定长度的最大值时,则到下一秒获取ID的步骤。
本发明提供了一种分布式ID生成系统,包括:用于接收客户端发送的ID生成请求的模块;用于根据ID生成请求获取当前时间并调用ID生成器的模块;用于根据ID生成器预设的规则生成一个或多个分布式ID的模块。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于上海维信荟智金融科技有限公司,未经上海维信荟智金融科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202010388539.4/2.html,转载请声明来源钻瓜专利网。
- 上一篇:载荷谱处理方法及装置
- 下一篇:蜂窝规整度检测的相邻点胞元重构方法