[发明专利]分布式ID生成在审
| 申请号: | 201910823767.7 | 申请日: | 2019-09-02 |
| 公开(公告)号: | CN110555078A | 公开(公告)日: | 2019-12-10 |
| 发明(设计)人: | 杨造 | 申请(专利权)人: | 上海摩库数据技术有限公司 |
| 主分类号: | G06F16/27 | 分类号: | G06F16/27;G06F16/21 |
| 代理公司: | 31270 上海翰信知识产权代理事务所(普通合伙) | 代理人: | 张维东;董佳 |
| 地址: | 201109 上海市徐汇*** | 国省代码: | 上海;31 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 业务类型标识 申请 读取 缓存 参数保持 单调递增 缓存数据 高效率 回退 加载 判定 数据库 存储 指令 查找 返回 重复 全局 | ||
本申请公开了一种分布式ID生成方法,包括以下步骤:S1、读取数据库中存储的业务类型标识和ID生成参数;S2、加载并缓存业务类型标识和ID生成参数;S3、业务类型标识与ID生成参数保持对应关系;S4、接收ID生成指令;S5、根据业务类型标识查找缓存数据;S6、判定ID当前值大小,返回ID生成结果;S7、运行申请新ID段任务。本申请的分布式ID生成方法可产生全局唯一且单调递增的ID,任何情况下ID不会重复或者回退,具备高效率产生ID的能力,具备提供多种ID的能力。
技术领域
本申请涉及计算机技术领域,尤其是涉及一种分布式ID生成方法和装置。
背景技术
在分布式系统中,需要对数据、消息、http请求等进行唯一标识,要求产生全局唯一且单调递增的ID(identity,唯一编码),任何情况下ID不能重复或者回退,具备高效率产生ID和提供多种ID的能力。目前,常见的方案有UUID、Flicker方案、snowflake算法等,但已经不能满足需求,需要生成全局唯一ID的服务。
发明内容
本申请实施例提供一种分布式ID生成方法和装置。
本申请实施例采用下述技术方案:
一种分布式ID生成方法,其特征在于,所述分布式ID生成方法包括以下步骤:
S1、读取数据库中存储的业务类型标识和ID生成参数,所述ID生成参数包括ID起始分配值、申请ID号段长度、最近一次申请ID号段时间和加载比例因子;
S2、加载并缓存业务类型标识和ID生成参数;
S3、所述业务类型标识与所述ID生成参数保持对应关系,根据所述ID生成参数,确定每个业务的ID当前值,ID当前值默认等于ID生成参数的ID起始分配值,缓存每个业务的ID当前值;
S4、接收ID生成指令,所述ID生成指令携带某个业务类型标识为请求参数;
S5、根据业务类型标识查找缓存数据,如果确定缓存中有该业务类型标识对应的ID当前值,获取ID当前值,将ID当前值加一设置为新的ID当前值;
S6、判定ID当前值大小,返回ID生成结果:如果ID当前值大于ID起始分配值并且小于ID更新阈值,返回ID当前值,所述ID更新阈值为申请ID号段长度×加载比例因子+ID起始分配值;如果ID当前值大于ID更新阈值并且小于ID分配结束值,产生一个申请新ID段的任务,所述ID结束值为ID起始分配值加上申请ID号段长度;如果ID当前值大于ID分配结束值,返回错误;
S7、运行申请新ID段任务。
一种分布式ID生成装置,包括:数据参数读取模块,缓存模块,ID生成请求接收模块,ID生成模块,缓存更新模块,更新判断模块,ID号段长度确定模块,参数更新模块。
本申请实施例采用的上述至少一个技术方案能够达到以下有益效果:
本申请的分布式ID生成方法可产生全局唯一且单调递增的ID,任何情况下ID不会重复或者回退。
ID长度尽可能短小,可降低存储或传输资源的浪费。
支持多种ID,在实际开发过程中,可满足不同的应用场景的ID生成需求,例如:每个消息、每个用户请求、每次事务的处理等。
容灾性高,ID生成服务内部有号段缓存,即使MySQL宕机,短时间内仍能正常对外提供服务。
可以自定义ID起始分配值的大小,非常方便业务从原有的ID方式上迁移过来。
ID生成利用缓存模块,运算效率高,因此具有高效率产生ID的能力。
ID生成服务可以很方便的线性扩展,性能完全能够支撑大多数业务场景。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于上海摩库数据技术有限公司,未经上海摩库数据技术有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201910823767.7/2.html,转载请声明来源钻瓜专利网。
- 上一篇:自动题库同步方法以及装置
- 下一篇:数据处理方法、装置、设备以及存储介质





