[发明专利]序列号生成方法、装置、计算机设备和存储介质有效
申请号: | 202110531636.9 | 申请日: | 2021-05-17 |
公开(公告)号: | CN112948399B | 公开(公告)日: | 2021-08-03 |
发明(设计)人: | 杨永兴;吕沅良 | 申请(专利权)人: | 太平金融科技服务(上海)有限公司深圳分公司 |
主分类号: | G06F16/22 | 分类号: | G06F16/22;G06F16/23;G06F16/2455 |
代理公司: | 广州华进联合专利商标代理有限公司 44224 | 代理人: | 姜晓云 |
地址: | 518048 广东省深圳市福田区新*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 序列号 生成 方法 装置 计算机 设备 存储 介质 | ||
本申请涉及一种序列号生成方法、装置、计算机设备和存储介质。所述方法包括:获取待生成序列号标识;根据所述序列号标识从数据库中查询对应的序列号;根据所获取的序列号更新缓存中的序列号信息。采用本方法能够提高可靠性。
技术领域
本申请涉及Java编程领域,特别是涉及一种序列号生成方法、装置、计算机设备和存储介质。
背景技术
随着分布式技术、微服务技术、云技术的发展,MySQL数据库的应用场景日益增多。但是MySQL数据库本身并没有实现序列号功能,仅通过存储过程实现的序列号功能又不能很好的满足高并发大流量的需求。若使用雪花算法、UUID则无法实现一些对编号有顺序要求的功能。
此外,目前的仅仅使用纯java程序实现序列号,实质上还是单个程序在运算处理序列号,数据可靠性非常差,且难以监控。
发明内容
基于此,有必要针对上述技术问题,提供一种能够提高可靠性的序列号生成方法、装置、计算机设备和存储介质。
一种序列号生成方法,所述方法包括:
获取待生成序列号标识;
根据所述序列号标识从数据库中查询对应的序列号;
根据所获取的序列号更新缓存中的序列号信息。
在其中一个实施例中,所述根据所述序列号标识从数据库中查询对应的序列号,包括:
根据所述序列号标识从数据库中查询第一数量的序列号,所述第一数量是通过所述数据库进行配置的。
在其中一个实施例中,所述获取待生成序列号标识之后,还包括:
判断缓存中是否存在与所述待生成序列号标识对应的序列号信息;
若不存在,则继续根据所述序列号标识从数据库中查询对应的序列号;
若存在,则获取序列号更新步长,根据所述序列号更新步长更新所述缓存中的序列号信息。
在其中一个实施例中,所述根据所述序列号更新步长更新所述缓存中的序列号信息之后,还包括:
判断更新后的序列号信息是否大于缓存最大值,所述缓存最大值是根据所述第一数量生成的;
当所述更新后的序列号信息大于所述缓存最大值,则继续根据所述序列号标识从数据库中查询对应的序列号的步骤。
在其中一个实施例中,所述数据库支持多个程序同时对所述数据库中的序列号进行操作;所述根据所述序列号标识从数据库中查询对应的序列号,包括:
通过乐观锁以及重试的方式,根据所述序列号标识从数据库中查询对应的序列号。
在其中一个实施例中,所述通过乐观锁以及重试的方式,根据所述序列号标识从数据库中查询对应的序列号之后,还包括:
当重试的次数大于等于阈值时,则将所述乐观锁修改为悲观锁,并通过所述悲观锁的方式,根据所述序列号标识从数据库中查询对应的序列号。
一种序列号生成装置,所述装置包括:
标识获取模块,用于获取待生成序列号标识;
查询模块,用于根据所述序列号标识从数据库中查询对应的序列号;
更新模块,用于根据所获取的序列号更新缓存中的序列号信息。
在其中一个实施例中,所述查询模块还用于根据所述序列号标识从数据库中查询第一数量的序列号,所述第一数量是通过所述数据库进行配置的。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于太平金融科技服务(上海)有限公司深圳分公司,未经太平金融科技服务(上海)有限公司深圳分公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202110531636.9/2.html,转载请声明来源钻瓜专利网。