【技术实现步骤摘要】
一种批量生成ID的方法及终端
本专利技术涉及生成ID
,尤其是涉及一种批量生成ID的方法及终端。
技术介绍
在实际项目开发中存在有多种的ID生成方式,例如:1、数据库自增主键生成ID,这种方式的扩展较差,写性能决定了每秒生成ID的数量上限。在分布式数据库中容易出现主节点不可用,备节点也产生问题的情况,或是出现主节点生成的ID写入成功,但日志未同步到备节点,导致备节点生成重复ID的情况;若将一个数据库变成多个数据库同时进行生成ID的写入,例如三个数据库同时进行ID的生成写入,初始ID分别为1、2、3,自增幅度都为3,这时可以保证三个数据库生成的ID不重复,但会导致ID不是绝对递增,而是整体趋势上递增的问题,并且数据库写入的压力仍然很大,数据库容易成为具体功能的性能瓶颈;2、数据库批量生成ID,通过数据库创建一张ID_start表,初始化其中一行数据,例如设定初始值为1,取10个ID,就给该值加10,接着将这10个ID写入redis缓存,需要获取ID的应用直接通过redis缓存获取ID,同时后端存在定时任务默认补充ID到redis缓存中实现批量生成ID,但这种方 ...
【技术保护点】
1.一种批量生成ID的方法,其特征在于,包括步骤:S1、间隔第一时间定时向第一缓存批量写入ID,间隔第二时间定时向第二缓存批量写入ID;S2、接收调用ID请求,从所述第一缓存读取ID,判断所述第一缓存是否返回正确的ID,若否,则执行S3;S3、从所述第二缓存读取ID。
【技术特征摘要】
1.一种批量生成ID的方法,其特征在于,包括步骤:S1、间隔第一时间定时向第一缓存批量写入ID,间隔第二时间定时向第二缓存批量写入ID;S2、接收调用ID请求,从所述第一缓存读取ID,判断所述第一缓存是否返回正确的ID,若否,则执行S3;S3、从所述第二缓存读取ID。2.根据权利要求1所述的一种批量生成ID的方法,其特征在于,所述第一缓存和第二缓存分别设置在不同的机器上;所述步骤S1具体为:通过第一任务间隔第一时间定时获取ID,并将获取到的ID批量写入第一缓存;通过第二任务间隔第二时间定时获取ID,并将获取到的ID批量写入第二缓存;同一时间点只允许一个任务获取ID。3.根据权利要求2所述的一种批量生成ID的方法,其特征在于,所述步骤S1之前包括:预设ID生成配置表,所述ID生成配置表包括修改版本号字段;所述同一时间点只允许一个任务获取ID具体为:当前任务获取所述ID生成配置表中的修改版本号,将所述修改版本号加一作为当前任务对应的第一信息,判断当前任务对应的第一信息是否大于所述ID生成配置表中的修改版本号,若是,则允许当前任务获取ID,若否,则禁止当前任务获取ID。4.根据权利要求3所述的一种批量生成ID的方法,其特征在于,所述ID生成配置表还包括ID开始字段;所述获取ID具体为:根据所述ID生成配置表中的ID开始字段获取生成的ID,并根据获取到的ID的数量更新所述ID开始字段。5.根据权利要求2所述的一种批量生成ID的方法,其特征在于,所述定时获取ID包括:定时查询当前任务对应的缓存中的ID个数是否低于预设值,若是,则获取ID。6.一种批量生成ID的终端,包括存储器、处理器及存储...
【专利技术属性】
技术研发人员:刘德建,林伟,郭玉湖,
申请(专利权)人:福建天泉教育科技有限公司,
类型:发明
国别省市:福建,35
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。