数据标识生成方法、装置、设备、介质及程序产品制造方法及图纸

技术编号:33400079 阅读:12 留言:0更新日期:2022-05-11 23:21
本发明专利技术提供一种数据标识生成方法、装置、设备、介质及程序产品,在该方法中,针对分布式系统产生的待标识的业务数据,根据上一标识的业务数据的虚拟编号生成该待标识的业务数据的虚拟编号,进而基于虚拟编号和时间戳生成该待标识的业务数据的数据标识,实现了分布式数据的全局唯一标识;采用虚拟编号生成数据标识,不依赖硬件环境,应用范围广;且该虚拟编号是由上一虚拟编号生成,无需存储大量的虚拟编号以及设置额外的数据库进行虚拟编号的维护,维护成本低。维护成本低。维护成本低。

【技术实现步骤摘要】
数据标识生成方法、装置、设备、介质及程序产品


[0001]本专利技术涉及计算机领域,尤其涉及一种数据标识生成方法、装置、设备、介质及程序产品。

技术介绍

[0002]在分布式系统中,通常很多业务场景中,如下单业务,需要对数据生产唯一标识(Identity,ID),以确保数据的唯一性,为数据提供定位、区分的有效标识。
[0003]在现有技术中,常用的数据标识生产的算法包括雪花算法(Snow Flake)和分布式ID生成器(Unique Identity Generator,uid

generator)。雪花算法的数据标识是基于部署的硬件环境生成的,即依赖于硬件的机器编号,在混合部署下,如采用同一台设备部署的分布式应用的场景,由于机器编码相同,因此雪花算法并不适用;uid

generator生成的数据标识需要额外进行数据库维护,增加了维护成本。
[0004]针对上述现象,在混合部署下,如何降低数据标识的维护成本,是亟需解决的问题。

技术实现思路

[0005]本专利技术实施例提供一种数据标识生成方法、装置、设备、介质及程序产品,提供一种不依赖数据库的、适用于各种场景的数据标识生成方法,降低了数据标识的维护成本。
[0006]第一方面,本专利技术实施例提供一种数据标识生成方法,所述方法包括:
[0007]确定待标识的业务数据;获取上一标识的业务数据的虚拟编号,并根据上一标识的业务数据的虚拟编号,生成所述待标识的业务数据的虚拟编号;基于所述待标识的业务数据对应的时间戳以及所述待标识的业务数据对应的虚拟编号,生成所述待标识的业务数据的数据标识,以通过所述数据标识唯一标识所述待标识的业务数据。
[0008]在一种具体实施方式中,根据上一标识的业务数据的虚拟编号,生成所述待标识的业务数据的虚拟编号,包括:
[0009]将所述上一标识的业务数据的虚拟编号增加单位步长,以得到所述待标识的业务数据的虚拟编号。
[0010]在一种具体实施方式中,在确定待标识的业务数据之后,所述方法还包括:
[0011]获取预设分布式锁;判断所述预设分布式锁是否取锁成功;若是,则获取上一标识的业务数据的虚拟编号;在生成所述待标识的业务数据的虚拟编号之后,删除所述预设分布式锁。
[0012]在一种具体实施方式中,若所述预设分布式锁取锁失败,则重复执行如下步骤,直至自旋次数达到预设次数或取锁成功:
[0013]等待随机时长后,将所述自旋次数加1;重新获取所述预设分布式锁并判断所述预设分布式锁是否取锁成功。
[0014]在一种具体实施方式中,当所述自旋次数达到预设次数时,根据上一标识的业务
数据的虚拟编号,生成所述待标识的业务数据的虚拟编号,包括:
[0015]将所述上一标识的业务数据的虚拟编号增加随机步长,以得到所述待标识的业务数据的虚拟编号。
[0016]在一种具体实施方式中,在生成所述待标识的业务数据的虚拟编号之后,删除所述预设分布式锁,包括:
[0017]根据所述待标识的业务数据的虚拟编号进行编号签约,以锁定所述待标识的业务数据的虚拟编号;签约成功后,删除所述预设分布式锁;按照预设周期,对所述待标识的业务数据的虚拟编号进行续约;若连续设定次数续约失败,则对所述待标识的业务数据的虚拟编号进行解约,以释放所述待标识的业务数据的虚拟编号。
[0018]在一种具体实施方式中,所述虚拟编号为基于预设注册表生成的,所述预设注册表中包括预设数量的预设编号,且各个预设编号按从小到大依次排序。
[0019]在一种具体实施方式中,在生成所述待标识的业务数据的虚拟编号之后,所述方法还包括:
[0020]判断所述虚拟编号是否大于编号上限,其中,所述编号上限为所述预设注册表中的最大的预设编号;若是,则确定编号下限为所述待标识的业务数据的虚拟编号,其中,所述编号下限为所述预设注册表中的最小的预设编号。
[0021]在一种具体实施方式中,在确定待标识的业务数据之后,所述方法还包括:
[0022]确定所述待标识的业务数据对应的随机数。
[0023]相应的,基于所述标识请求对应的时间戳以及所述待标识的业务数据对应的虚拟编号,生成所述待标识的业务数据的数据标识,包括:
[0024]基于所述标识请求对应的时间戳、所述待标识的业务数据对应的虚拟编号以及随机数,生成所述待标识的业务数据的数据标识。
[0025]在一种具体实施方式中,确定所述待标识的业务数据对应的随机数,包括:
[0026]生成包括多个随机数的随机池;对所述随机池中的随机数进行洗牌;判断所述随机池中的随机数的数量是否小于第一数量;若否,则将洗牌后的所述随机池中的第一个随机数取出,并作为所述待标识的业务数据对应的随机数。
[0027]在一种具体实施方式中,当所述随机池中的随机数的数量小于第一数量时,所述方法还包括:
[0028]生成备用随机池,其中,所述备用随机池与所述随机池中的随机数的数量相同;判断在预设时间内所述随机池中的随机数的数量是否减少;若否,则将所述随机池更新为所述备用随机池;对更新后的随机池中的随机数进行洗牌,并将洗牌后的所述更新后的随机池中的第一个随机数取出,作为所述待标识的业务数据对应的随机数。
[0029]在一种具体实施方式中,若在预设时间内所述随机池中的随机数的数量减少,所述方法还包括:
[0030]判断所述随机池中的随机数的数量是否为0;若是,则等待第一时间,将所述随机池更新为所述备用随机池;对更新后的随机池中的随机数进行洗牌,并将洗牌后的所述更新后的随机池中的第一个随机数取出,作为所述待标识的业务数据对应的随机数。
[0031]在一种具体实施方式中,在生成所述待标识的业务数据的数据标识之后,所述方法还包括:
[0032]根据所述数据标识中的时间戳,对设定时间范围内的业务数据进行统计,以确定设定时间范围内对应的交易量。
[0033]第二方面,本专利技术实施例提供一种数据标识生成装置,所述装置包括:
[0034]数据确定模块,用于确定待标识的业务数据;虚拟编号生成模块,用于获取上一标识的业务数据的虚拟编号,并根据上一标识的业务数据的虚拟编号,生成所述待标识的业务数据的虚拟编号;数据标识生成模块,用于基于所述待标识的业务数据对应的时间戳以及所述待标识的业务数据对应的虚拟编号,生成所述待标识的业务数据的数据标识,以通过所述数据标识唯一标识所述待标识的业务数据。
[0035]第三方面,本专利技术实施例提供一种数据标识生成设备,包括:
[0036]处理器,存储器以及通信接口;
[0037]所述存储器用于存储所述处理器的可执行指令;
[0038]其中,所述处理器配置为经由执行所述可执行指令来执行第一方面任一项所述的数据标识生成方法。
[0039]第四方面,本专利技术实施例提供一种可读存储介质,其上存储有计算机程序,所述计算机程序被处本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种数据标识生成方法,其特征在于,所述方法包括:确定待标识的业务数据;获取上一标识的业务数据的虚拟编号,并根据上一标识的业务数据的虚拟编号,生成所述待标识的业务数据的虚拟编号;基于所述待标识的业务数据对应的时间戳以及所述待标识的业务数据对应的虚拟编号,生成所述待标识的业务数据的数据标识,以通过所述数据标识唯一标识所述待标识的业务数据。2.根据权利要求1所述的方法,其特征在于,根据上一标识的业务数据的虚拟编号,生成所述待标识的业务数据的虚拟编号,包括:将所述上一标识的业务数据的虚拟编号增加单位步长,以得到所述待标识的业务数据的虚拟编号。3.根据权利要求1所述的方法,其特征在于,在确定待标识的业务数据之后,所述方法还包括:获取预设分布式锁;判断所述预设分布式锁是否取锁成功;若是,则获取上一标识的业务数据的虚拟编号;在生成所述待标识的业务数据的虚拟编号之后,删除所述预设分布式锁。4.根据权利要求3所述的方法,其特征在于,若所述预设分布式锁取锁失败,则重复执行如下步骤,直至自旋次数达到预设次数或取锁成功:等待随机时长后,将所述自旋次数加1;重新获取所述预设分布式锁并判断所述预设分布式锁是否取锁成功。5.根据权利要求4所述的方法,其特征在于,当所述自旋次数达到预设次数时,根据上一标识的业务数据的虚拟编号,生成所述待标识的业务数据的虚拟编号,包括:将所述上一标识的业务数据的虚拟编号增加随机步长,以得到所述待标识的业务数据的虚拟编号。6.根据权利要求3所述的方法,其特征在于,在生成所述待标识的业务数据的虚拟编号之后,删除所述预设分布式锁,包括:根据所述待标识的业务数据的虚拟编号进行编号签约,以锁定所述待标识的业务数据的虚拟编号;签约成功后,删除所述预设分布式锁;按照预设周期,对所述待标识的业务数据的虚拟编号进行续约;若连续设定次数续约失败,则对所述待标识的业务数据的虚拟编号进行解约,以释放所述待标识的业务数据的虚拟编号。7.根据权利要求1

6任一项所述的方法,其特征在于,所述虚拟编号为基于预设注册表生成的,所述预设注册表中包括预设数量的预设编号,且各个预设编号按从小到大依次排序。8.根据权利要求7所述的方法,其特征在于,在生成所述待标识的业务数据的虚拟编号之后,所述方法还包括:判断所述虚拟编号是否大于编号上限,其中,所述编号上限为所述预设注册表中的最
大的预设编号;若是,则确定编号下限为所述待标识的业务数据的虚拟编号,其中,所述编号下限为所述预设注册表中的最小的预设编号。9.根据权利要求1

6任一项所述的方法,其特征在于,在确定待标识的业务数据之后,所述方法还包括:确定所述待标识的业务数据对应的随机数;相应的,基于所述标识请求对应的时间戳以及所述...

【专利技术属性】
技术研发人员:程路超
申请(专利权)人:北京京东振世信息技术有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1