[发明专利]一种号段模式下生成分布式ID的方法在审

专利信息
申请号: 202011076032.1 申请日: 2020-10-10
公开(公告)号: CN112181306A 公开(公告)日: 2021-01-05
发明(设计)人: 陈科明;檀宇;杜坤;周涛 申请(专利权)人: 杭州电子科技大学
主分类号: G06F3/06 分类号: G06F3/06;H04L29/12
代理公司: 浙江千克知识产权代理有限公司 33246 代理人: 周希良
地址: 310018 浙江*** 国省代码: 浙江;33
权利要求书: 查看更多 说明书: 查看更多
摘要:
搜索关键词: 一种 模式 生成 分布式 id 方法
【说明书】:

发明公开了一种号段模式下生成分布式ID的方法。本发明首先由客户端调用ID生成服务模块;其次从数据库读取下一个可用的ID序号;最后利用读取的ID序号生成对应的业务ID并存入相应的业务表中。其中,以第二步具体是判断本地内存中ID号段是否使用完;如果使用完从数据库中批量获取一段ID序号,并保存在本地内存中;否则根据本地内存中缓存的ID顺序递增生成业务ID。本发明还提出一种双缓冲区优化的方法。通过创建异步线程读取数据库中下一个可用号段。本发明针对原有方案的多次读取数据库修改为批量获取号段,减少访问数据库次数,降低数据库的压力。本发明还建立双缓冲区,异步获取号段减少阻塞概率,甚至可以达到无阻塞状态。

技术领域

本发明涉及计算机技术领域,尤其涉及一种分布式系统下使用号段模式生成分布式ID的方法。

背景技术

随着互联网的快速发展,项目体量越来越大,在复杂分布式系统中,往往需要对大量的数据和消息进行唯一标识。数据日渐增长,对数据分库分表后需要有一个唯一ID来标识一条数据或消息,MySQL数据库的自增ID显然不能满足需求,此时一个能够生成全局唯一ID的系统是非常必要的。

在分布式系统中我们需要部署多台机器,每台机器设置不同的初始值,且步长和机器数相等。比如有两台机器。设置步长step为2,如TicketServer1的初始值为1(1,3,5,7,9,11…);TicketServer2的初始值为2(2,4,6,8,10…)。以此类推,假设我们要部署N台机器,步长需设置为N,每台的初始值依次为0,1,2…N-1。则第一台机器为0,N,2N,3N…;第二台为1,1+N,1+2N…;第三台,以至于第N-1台也是这样的规律。

这种架构貌似能够满足性能的需求,但有以下几个缺点:

1、系统水平扩展比较困难,比如定义好了步长和机器台数之后,如果要添加机器该怎么做。假设现在只有一台机器发号是1,2,3,4,5(步长是1),这个时候需要扩容机器一台。可以这样做:把第二台机器的初始值设置得比第一台超过很多,比如14(假设在扩容时间之内第一台不可能发到14),同时设置步长为2,那么这台机器下发的号码都是14以后的偶数。然后摘掉第一台,把ID值保留为奇数,比如7,然后修改第一台的步长为2。让它符合我们定义的号段标准,对于这个例子来说就是让第一台以后只能产生奇数。扩容方案看起来复杂吗。貌似还好,现在想象一下如果我们线上有100台机器,这个时候要扩容该怎么做。简直是噩梦。所以系统水平扩展方案复杂难以实现。

2、ID没有了单调递增的特性,只能趋势递增,这个缺点对于一般业务需求不是很重要,可以容忍。

3、数据库压力还是很大,每次获取ID都得读写一次数据库,只能靠堆机器来提高性能。

发明内容

本发明针对现有技术的不足,提供了一种号段模式下生成分布式ID的方法

包括以下步骤:

第一步:客户端调用ID生成服务模块;

第二步:从数据库读取下一个可用的ID序号;

第三步:利用读取的ID序号生成对应的业务ID并存入相应的业务表中。

其中,以上所述第二步从数据库读取下一个可用的ID序号的步骤包括:

(1)、判断本地内存中ID号段是否使用完;如果使用完就跳到第(2)步,否则的话跳到第(3)步。

(2)、从数据库DB中批量获取一段ID序号,并保存在本地内存中。

(3)、根据本地内存中缓存的ID顺序递增生成业务ID。

本发明还提出一种双缓冲区优化的方法。

所述为以上的第(2)步从数据库批量获取一段ID序号,并保存在本地内存中的步骤包括:

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

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

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

×

专利文献下载

说明:

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

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

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

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

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

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

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

钻瓜专利网在线咨询

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

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